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 dba@‘localhost’
其中,关键字 “privileges” 可以省略。
2.grant all privileges on demoDB.* to demo@localhost 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

你可能感兴趣的:(mysql,经验)