1 mysql报错无法登陆

a 报错信息:

[mysql@test3 ~]$ mysql -uroot -p

-bash: mysql: command not found

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

解决方法:

[root@test3 bin]# ln -s /mysql/mysql5.6.19/bin/mysql /usr/bin/mysql

链接:http://www.jb51.net/article/34622.htm


b 报错信息:

bash-3.2$ mysql -uroot -p

Enter password: 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决:

ln -s /mysql/mysql.sock /tmp/mysql.sock

做完软连接,重启mysql服务,再次通过mysql程序连接,没有问题,可以连上了

PS:

其实不做软链接也是可以的,只需要在/etc/my.cnf里添加[mysql]字段指定socket的位置到我们转移后的位置即可

[mysql] 

socket=/data/mysql/mysql.sock

但是我没看出我的这个配置有问题,做完软链接就好了


2 主从同步报错

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

找到原因在于,拷贝整个data目录,把auto.cnf文件也拷贝过来了,里面记录了数据库的uuid,每个库的uuid应该是不一样的。

[root@bogon ~]# find / -name auto.cnf

/var/lib/mysql/auto.cnf

[root@bogon ~]# vi /var/lib/mysql/auto.cnf 

[auto]
server-uuid=6dcee5be-8cdb-11e2-9408-90e2ba2e2ea6

解决办法,按照这个16进制格式,随便改下,重启mysql即可[两台机器时复制的]