Mysql常见问题及解决方案

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

数据库恢复完毕。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容