本地socket连接
mysql -u[用户名] -p[密码] -S[指定sock文件]
查看my.cnf
[root@nfs01 ~]# cat /etc/my.cnf
[mysqld]
user = mysql
basedir = /app/mysql
datadir = /data-mysql
port = 3306
server_id = 3
socket = /tmp/mysql.sock #服务端启动产生的sock
[mysql]
socket = /tmp/mysql.sock #客户端连接服务器指定的sock
对于socket注意点
当[mysqld]服务端字段和[mysql]客户端字段都不配置socket关键字时,mysql启动默认在tmp目录创建sock文件,并且mysql不需要加-S参数指定sock,默认会自动去tmp目录下读取sock文件。
当把my.cnf中[mysqld]服务端字段的socket参数修改成如下
[mysqld]
user = mysql
basedir = /app/mysql
datadir = /data-mysql
port = 3306
server_id = 3
socket = /tmp/mmmm.sock
启动数据库查看sock文件
[root@nfs01 ~]# ls /tmp/*.sock
/tmp/mmmm.sock
默认连接数据库会报如下错误
[root@nfs01 ~]# mysql -uroot -p1
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方式1
指定sock文件之后成功进入数据库
[root@nfs01 ~]# mysql -uroot -p1 -S /tmp/mmmm.sock
解决方式2
在my.cnf文件中的[mysql]字段添加和[mysqld]一样的socket参数
远程连接
mysql -u[用户名] -p[密码] -h[mysql服务端ip地址] -P[端口]