最近项目用到了Mysql,项目里面没有运维人员,项目经理吩咐我在Linux下搭基础环境,其中遇到各种坑,现在记录一下,方便以后使用。
以下内容是从网上摘抄过了的,若有侵权,请联系本人删除。
1.mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录。
shell> find / -name .mysql_secret
shell> vim /var/log/mysqld.log
/password 找到临时生成的密码
2.若第一步成功,则使用该密码继续第7步
3.修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
a. 关闭正在运行的MySQL服务。
b. vim /etc/my.ini 最后一行添加 skip-grant-tables //启动MySQL服务的时候跳过权限表认证。
4.service mysqld restart后,即可直接用mysql进入
5. mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
//使用语句之前最好查一下user表里面关于密码的字段.根据版本不同,有的是authentication_string,有的是password
mysql> flush privileges;
mysql> quit;
6.将/etc/my.cnf文件还原,重新启动mysql:service mysql restart,这个时候可以使用mysql -u root -p'123456'进入了
7.mysql>SET PASSWORD = PASSWORD('newpasswd'); 设置新密码//newpasswd是新密码
ps: 报错:1130-host ... is not allowed to connect to this MySql server时解决办法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,
登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root' and host = 'localhost';
mysql>select host, user from user;
mysql>flush privileges;
shell>service mysqld restart;