从命令行连接到 MySQL
Posted
技术标签:
【中文标题】从命令行连接到 MySQL【英文标题】:connecting to MySQL from the command line 【发布时间】:2011-07-05 03:40:56 【问题描述】:如何在 Mac 中? (即给我看代码)
我正在做一个 php/SQL 教程,但它首先假设您已经在 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
编辑此答案的人:请不要在 -p
和 PASSWORD
之间添加空格
【讨论】:
谢谢您,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
这会
-
将您连接到远程数据库(包括端口)
不要将您的密码存储在您的
.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
-
进入 MySQL 安装目录,然后进入 bin 目录(mysql.exe 必须显示在文件列表中)
在同一位置打开 cmd
运行
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
。但最好是将密码存储在其他地方。 *** 上的其他线程为此提供了很好的答案。
您可以自定义该文件中的数据,剩下的交给您。例如,删除 database
行允许您执行 mysql another-db-name
【讨论】:
以上是关于从命令行连接到 MySQL的主要内容,如果未能解决你的问题,请参考以下文章
为啥从 powershell 命令行连接到 github 时出错?
如何从命令行连接到托管的 Team Foundation Service