1. 远程连接mysql服务器
可以先用windows平台的工具访问linux系统上的mysql服务器,如果提示不让远程登录,看下面的解决办法
常见错误分析:
1.不让远程登录的解决办法
首先注意:设置完成后,root的密码变成了mysql
不让远程登录:如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 .:所有库下的所有表 %:任何IP地址或主机都可以连接)
输入命令说明:GRANT ALL PRIVILEGES ON *.* TO ‘用户名’@’%’ IDENTIFIED BY ‘你的密码’ WITH GRANT OPTION;
让客户端在远程登录拥有权限,密码重新设置成mysql
输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION;
输入命令:FLUSH PRIVILEGES; 将命令写入授权表
让客户端在本地登录拥有权限,密码重新设置成mysql
输入命令:grant all privileges on *.* to root@"localhost" identified by "mysql" with grant option;
输入命令:FLUSH PRIVILEGES;
2.执行mysql -uroot -p
或者
第一次安装完mysql后 执行/usr/bin/mysql_secure_installation 脚本,
出现 Enter current password for root (enter for none): 点击回车后出现下面的错误
mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
错误原因:/var/lib/mysql目录中socket文件不存在。
连接mysql服务器有两种方式:tcp连接,通过socket文件连接。通过socket文件,启动mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 --datadir=/var/lib/mysql,mysql默认从/var/lib/mysql目录读取sock文件。
解决办法:
1、看看/var/lib/mysql/mysql 有没有mysql.sock文件
2、没有mysql.sock,重启mysql服务,看看有没有。
3、没有的话,ps aux|grep mysql|grep -v ‘grep’ 查看mysql服务生成的sock在哪个目录,看看这个目录有没有。
4、如果mysql服务生成在其他目录,解决办法有:
方法一 修改mysql服务生成的目录,在/etc/my.cnf 中[mysqld] socket
首先确认在etc/下有没有my.cnf文件
如果是rpm安装的mysql,默认这里没有.需要将usr/share/mysql下的my-medium.cnf拷贝到/etc/下并改名成my.cnf
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
方法二 mysql从/var/lib/mysql/读取sock文件,建立一个软连接,或者copy过来
方法三 还可以找到当前的mysql进程,将他删掉,重新启动
情况:第一次启动失败,进程没有关闭,第二次开服务无法启动