欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql使用过程中遇到的坑

程序员文章站 2024-02-28 08:46:34
...

找不到初始密码解决方案

修改mysql的配置文件,使之可以跳过密码直接用root进入数据库

(1)首先找到mysql的配置文件my.cnf 一般在 /etc/my.cnf

(2)cd进 /etc 直接 vim my.cnf 编辑他

(3)在【mysqld】标签下或者文件最下面添加一句skip-grant-tables 即可

(4) esc退出编辑 :wq保存退出 ,然后重启服务器 service mysqld restart 让修改生效

(5)mysql -u root 就可以直接进入数据库了

(6)然后是修改密码,最好设置密码复杂点,建议:大写字母+小写字母+符号。否则后面mysql会报错让你改到符合mysql的安全策略,或者也可以修改mysql安全策略

    mysql> USE mysql;

            mysql> update mysql.user set authentication_string=password(‘新密码‘) where user=‘root‘;

            mysql> flush privileges ;

            mysql> quit

(7)改完密码,再将配置文件改回来,就把添加的那句删掉就好了,然后再次重启服务器service mysqld restart

(8)然后就可以使用 mysql -uroot -p输入你的新密码进入啦

开启端口

在CentOS系统中防火墙默认是阻止3306端口的,我们要是想访问mysql数据库,我们需要这个端口,命令如下:
1 /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
我们需要保存我们的操作,命令如下:

1 /etc/rc.d/init.d/iptables save
此时我们可以查看端口的状态,命令如下:

1 /etc/init.d/iptables status
当然如果你打开其他端口也一样,只需要把这个端口号换乘你需要的端口号即可。

赋予某个用户某个数据库的所有权限

1.mysql授权 :grant all privileges on testdb.* to [email protected]‘localhost’
其中,关键字 “privileges” 可以省略。
2.grant all privileges on demoDB.* to [email protected] identified by ‘1234’;
第二种不行再尝试第一种

远程连接提示密码规则改变

进入mysql依次执行下面语句

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #修改加密规则

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #更新一下用户的密码

FLUSH PRIVILEGES; #刷新权限

alter user ‘root’@‘localhost’ identified by ‘xzx123456’;#重置密码

原文:https://blog.csdn.net/lihua5419/article/details/80394716