Mysql常见问题解决


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

1、[root@localhost ~]# find /-name mysql.sock
/var/lib/mysql/mysql.sock

创建符号连接:

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


2、vi /etc/my.conf

检查下行内容是否存在

[client]

socket=/tmp/mysql.sock

 

mysql找不到mysql.sock或文件为空,查看日志如下:

[ERROR] Can‘t start server: Bind on TCP/IP port:Cannot assign requested address
[ERROR] Do you already have another mysqld server running on port: 3306 ?
[ERROR] Aborting

 

提示是端口可能被占用,于是执行:

greatmoo:~# netstat -anp |grep "3306"

vi /etc/my.cnf,port改成3307

greatmoo:~# vi/etc/mysql/my.cnf
[client]
port            = 3307
#

[mysqld]
port            = 3307
#

准备保存后启动mysql,再启动 mysql 就成功了

 

 

 

ERROR 1045 (28000): Access denied for user ’root’@’localhost’ (usingpassword: NO) 

 

方法一: 
# /etc/init.d/mysql stop 
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
# mysql -u root mysql 
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) whereUSER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
# /etc/init.d/mysql restart 
# mysql -uroot -p 
Enter password: <
输入新设的密码newpassword> 
mysql> 


方法二: 
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码
# mysql -udebian-sys-maint -p 
Enter password: <
输入[client]节的密码
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) whereUSER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
# mysql -uroot -p 
Enter password: <
输入新设的密码newpassword> 
mysql> 


方法三: 
这种方法我没有进行过测试,因为我的root用户默认密码已经被我修改过了,那位有空测试一下,把结果告诉我,谢谢! 
# mysql -uroot -p 

Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码

最后注意:别忘了关闭防火墙,免得外网无法访问该主机的数据库端口。

 

 

 

启动报错:File ‘./mysql-bin.index‘not found (Errcode: 13)

 

1errcode13,一般就是权限问题,mysql用户是否对数据库目录内的所有文件具有写的权限,查看一下权限

2chown mysql.mysql -R < mysql-bin.index所在的目录>

 

本文出自 “运维·人生” 博客,转载请与作者联系!

Mysql常见问题解决

上一篇:SQLServer 触发器初探


下一篇:mysql主从监控脚本: