【问题标题】:connecting to MySQL from the command line从命令行连接到 MySQL
【发布时间】:2011-07-05 03:40:56
【问题描述】:

如何在 Mac 中从命令行连接到 MySQL? (即给我看代码)

我正在做一个 PHP/SQL 教程,但它首先假设您已经在 MySQL 中。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    请看这里http://dev.mysql.com/doc/refman/5.0/en/connecting.html

    mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME 
    

    以上选项表示:

    -u: username
    -p: password (**no space between -p and the password text**)
    -h: host
    last one is name of the database that you wanted to connect. 
    

    查看链接,那里有详细说明!


    正如Rick 已经提到的,您可以通过不像这样传递密码来避免将密码作为命令的一部分传递:

    mysql -u USERNAME -h HOSTNAMEORIP DATABASENAME -p
    

    编辑此答案的人:请不要在 -pPASSWORD 之间添加空格

    【讨论】:

    • 谢谢您,2 个问题 1)您是否必须包含“-u”“-p”等,或者是否被用户名等替换 2)如果没有创建数据库,您是否就离开那个空白?
    • 可以根据你登录的用户来设置MySQL认证,或者根本不认证,但这都不是一个好主意,在命令行指定密码甚至有点安全风险,因为它最终会出现在您的命令历史记录和进程表中。如果您遗漏密码,它会要求您输入密码。
    • @Michael 1) 已更新。 ALL-CAPS 需要替换为实际值。保留 -u, -p, -h 原样 2) 是的。登录后输入show databases查看数据库列表。
    • @dj_segfault 正确。所以,如果你离开,-p 没有指定密码,它会提示你输入密码。
    • 如果您当前没有创建数据库,则需要使用 mysqladmin 命令创建一个。但我相信当您安装服务器时,会创建默认的“mysql”数据库,其中包含所有架构和身份验证信息。您可以登录该数据库(如果您有足够的权限)并从那里创建其他数据库。
    【解决方案2】:

    最佳做法是mysql -u root -p。 然后 MySQL 会在你回车后提示输入密码。

    【讨论】:

    • 详细地说,这可以防止您的密码出现在.bash_history 中。使用当前投票最多的方法,如果有人获得了对$HOME(以及.bash_history)的访问权限,那么他们也会获得您的身份验证详细信息——太可怕了!这种入侵可能(和does)发生......
    • 您可以执行 bash 命令而不会显示在 .bash_profie 中。在这里阅读更多:commandlinefu.com/commands/view/1512/…
    • @Jeremy 不仅在 .bash_history 中,在 top 中还有更多工具!您甚至可以保护您的文件,只需与其他合法用户共享计算机。
    • +1 因为我的密码里面有特殊符号,当它是命令的一部分时它不会解析,它必须单独完成。
    【解决方案3】:

    在运行 MySQL Shell 之后,您会看到以下内容:

    mysql-js>
    

    首先,你应该:

    mysql-js>\sql
    

    其次:

     mysql-sql>\connect username@servername (root@localhost)
    

    最后:

    Enter password:*********
    

    【讨论】:

    • 如果我只有shell,如何导入mysql文件?它不会看到我的本地文件系统。我需要客户还是 Shell 是客户?
    【解决方案4】:

    使用以下命令连接到您的 MySQL 数据库

    mysql -u 用户名 -h 主机名 -p

    【讨论】:

      【解决方案5】:

      使用正确的 MySQL 用户名和密码直接连接到 MySQL 的一种方法是:

      mysql --user=root --password=mypass
      

      这里,

      root is the MySQL username
      mypass is the MySQL user password
      

      如果您的密码为空,这很有用。

      例如,如果您的 MySQL 用户名为 root 且密码为空,则只需使用

      mysql --user=root --password=
      

      【讨论】:

        【解决方案6】:

        简短、甜美、完整:(而且安全)

        mysql -u <username> -h <hostname> -P <port> <database> -p

        这会

        1. 将您连接到远程数据库(包括端口)
        2. 不要将您的密码存储在您的.bash_history

        【讨论】:

          【解决方案7】:

          有时您可能需要为端口添加-P

          mysql -u USERNAME -pPASSWORD -h HOSTNAME -P PORTNUMBER DATABASE;
          

          【讨论】:

            【解决方案8】:

            在我的例子中,它可以在 Mac 上使用以下命令。

            运行 MySQL Shell 后,您会看到以下内容:

            mysql-js>
            

            首先,你应该:

            mysql-js>\sql
            

            第二步:

            MySQL  SQL > \c --mysql username@host
            

            最后根据提示输入密码

            【讨论】:

              【解决方案9】:

              这对我有用::-

              mysql --host=hostNameorIp --user=username --password=password  
              

              mysql --host=hostNameorIp --user=username --password=password database_name
              

              【讨论】:

                【解决方案10】:

                这些步骤适用于 Windows 10

                1. 进入 MySQL 安装目录,然后进入 bin 目录(mysql.exe 必须显示在文件列表中)
                2. 在同一位置打开 cmd
                3. 运行mysql -u [username] -p(如果没有设置密码,不需要加-p)然后回车

                【讨论】:

                  【解决方案11】:

                  奇怪的是,尽管有很多(类似的)答案,但没有人建议这样做:

                  您可以在 $HOME 文件夹中创建一个.my.cnf 文件,其中包含:

                  [client]
                  host=127.0.0.1
                  port=3306
                  database=google
                  user=root
                  password=root
                  

                  你只需要这样做

                  $> mysql
                  

                  连接到那个数据库。

                  需要考虑的一些关键说明

                  • 在该文件中存储密码不是一个好主意。在最坏的情况下,请发送chmod 400 .my.cnf。但最好是将密码存储在其他地方。 StackOverflow 上的其他线程为此提供了很好的答案。
                  • 您可以自定义该文件中的数据,剩下的交给您。例如,删除 database 行允许您执行 mysql another-db-name

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-03-08
                    • 2013-04-30
                    • 2014-06-19
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多