Q:Access denied for user 'root'@'localhost' (using password: YES)
A:通常是密码不正确导致的,按照下面步骤修改密码。
方法一,针对于5.7以下版本(
1.修改/etc/my.conf配置文件中找到[mysqld] 在下方增加skip-grant-tables
2.查看数据库show databases
3.使用mysql数据库表use mysql
4.更新user表里边password,这里边这个密码就是登录时候,初始密码为:12345678
update user set Password=''password' where user ='root'
5.退出数据库exit
6.把之前的配置文件改回来,使用密码登录,注释掉skip-grant-tables
7.重启mysqlservice mysqld restart
8.输入密码登录,密码为:12345678 mysql -u root -p (提示输入密码)
方法二,针对mysql5.7以上版本
在MySQL 5.7 password字段已从mysql.user表中删除,新的字段名是“authenticalion_string”.
# 修改密码
update user set authentication_string=password('dyaG23CquLp4RnlC') where user='root' and Host='localhost';
# 刷新权限
flush privileges;
Q:使用mysql -h 172.26.197.40 -u user -p 连接提示:ERROR 1130 (HY000): Host 'iZ8vbjekblluh1m9apn4u5Z' is not allowed to connect to this MySQL server
A:首先确认密码是否正确,登录msyql(忘记密码参看上面)
GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.3' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Q:Mysql 区分表名大小写
A: 在[mysqld] lower_case_table_names=1
执行 service mysqld restart
Q:数据库实例无法启动如何恢复数据?
A:如果有两个数据A(无法启动)和B(安装一个新的mysql),找到数据文件存储位置cat /etc/my.cnf
datadir = /www/server/data
cd /www/server/data
[root@ data]# ls
test (拷贝这个test数据库到新的数据库对应的位置,并删除文件中opt.db)
ibtmp1(拷贝这个ibtmp1到对应的目录下,不然会提示error: 1146: Table doesn't exist)
执行 service mysqld stop
service mysqld start
数据库恢复完毕。