ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)
以上这种情况一般都是数据库未启动或者数据库端口被防火墙拦截导致。 解决方法:启动数据库或者防火墙开放数据库监听端口。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重启数据库。最后修改密码命令如下:
mysql> use mysql;
mysql> update user set password=password("123456") where user="root";
再删除刚刚添加的 skip-grant-tables 参数,再重启数据库,使用新密码即可登录。
重新授权,命令如下:
mysql> grant all on *.* to 'root'@'mysql-server' identified by 'root123456';
在使用远程连接数据库时偶尔会发生远程连接数据库很慢的问题
如果 MySQL 主机查询 DNS 很慢或是有很多客户端主机时会导致连接很慢,由于开发机器是不能够连接外网的,所以 DNS 解析是不可能完成的,从而也就明白了为什么连接那么慢了
修改 my.cnf 主配置文件,在[mysqld]下添加 skip-name-resolve,重启数据库可以解决。注意在以后授权里面不能再使用主机名授权。
Can't open file: 'xxx_forums.MYI'. (errno: 145)
可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)
以上两种修复方式在执行前一定要备份数据库
修改文件的属组(仅适合独立主机用户)
ERROR 1129 (HY000): Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
由于 mysql 数据库的参数:max_connect_errors(系统默认 10) mysqld 已经得到了大量(max_connect_errors)的主机’hostname’的在中途被中断了的连接请求累计超过 10 次, 就再也无法连接上 mysqld 服务,同一个 ip 在短时间内产生太多中断的数据库连接而导致的阻塞(超过 mysql 数据库 max_connection_errors 的最大值)
mysqladmin -uroot -p -h 192.168.241.48 flush-hosts
Enter password:
客户端报 Too many connections
连接数超出 Mysql 的最大连接限制
max_connections = 10000
set GLOBAL max_connections=10000
Warning: World-writable config file '/etc/my.cnf' is ignored
ERROR! MySQL is running but PID file could not be found
MySQL 的配置文件/etc/my.cnf 权限不对
chmod 644 /et/my.cnf
InnoDB: Error: page 14178 log sequence number 29455369832
InnoDB: is in the future! Current system log sequence number 29455369832
innodb 数据文件损坏
修改 my.cnf 配置文件,在[mysqld]下添加 innodb_force_recovery=4, 启动数据库后备份数据文件,然后去掉该参数,利用备份文件恢复数据。
从库的 Slave_IO_Running 为 NO
The slave I/O thread stops because master and slave have equal MySQL server ids; these ids
must be different for replication to work (or the --replicate-same-server-id option must
be used on slave but this does not always make sense; please check the manual before using
it).
主库和从库的 server-id 值一样
修改从库的 server-id 的值,修改为和主库不一样,比主库低。修改完后重启,再同步即可
从库的 Slave_IO_Running 为 NO
成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除或更新数据, 从库找不到记录,数据被修改导致。通常状态码报错有 1007、1032、1062、1452 等
方法一:
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
方法二:
从库的 Slave_IO_Running 为 NO
set global read_only=true;
Error initializing relay log position: I/O error reading the header from the binary log
从库的中继日志 relay-bin 损坏.
手工修复,重新找到同步的 binlog 和 pos 点,然后重新同步即可
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;