mysql使用过程中遇到的坑
找不到初始密码解决方案
修改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’;#重置密码