shell如何连接mysql_如何在shell中操作(连接)mysql数据
库?学步园
我知道的有如下两种⽅式可以在shell中访问操作mysql数据库
1. mysql -uusername -ppasswd -e "command;command"
[root@localhost ~]# mysql -uroot -p123456 -e "select user,host from mysql.user"
+------+-----------------------+
| user | host                  |
+------+-----------------------+
| root | %                    |
| root | 127.0.0.1            |
| php  | localhost            |
| root | localhost            |
| root | localhost.localdomain |
+------+-----------------------+
请看下⾯这段⽂字:(引⾃mysql参考⼿册)
对mysql偶尔有⽤的另⼀个选项是-e或--execute选项,可⽤来将SQL语句传递给服务器。该语句必须
⽤引号引起来(单引号或双引号)。(然⽽,如果想要在查询中将值引起来,则对于查询应使⽤双引号
,查询中引⽤的值应使⽤单引号)。当使⽤该选项时,语句被执⾏,然后mysql⽴即退出命令外壳。
例如,你可以⽤下⾯的命令获得⽤户账户列表:
shell> mysql -u root -p -e "SELECT User, Host FROM User" mysql
请注意mysql数据库名作为⼀个独⽴的参量传递。然⽽,相同的查询可能已经使⽤mysql -u root -p
-e "SELECT User,Host FROM mysql.User"从外壳中执⾏。
可以按这种⽅式传递多个SQL语句,⽤分号隔开:
shell> mysql -u root -p --execute="SELECT Name FROM Country WHERE Name LIKE
'AU%';SELECT COUNT(*) FROM City" world
2. 如果sql语句⽐较多,可使⽤如下⽅式:
[root@localhost ~]# mysql -uroot -p123456 << EOF
> use mysql;
> select user,host from user;
php远程连接mysql数据库> EOF
user    host
root    %
root    127.0.0.1
php    localhost
root    localhost
root    localhost.localdomain
从查询结果中可以看出,两者的输出结果格式不⼀样,前⼀种⽅式保留了mysql的输出格式。
另外,与此篇⽂章有关的shell 重定向知识,可以查阅ABS guide第16章节“I/O重定向”和第17章节“Here Documents”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。