5.5版本
忘记原来的myql的root的密码;首先,你必须要有操作系统的root权限了。
要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
先看进程
ps -aux|grep mysql
杀死进程。
下面的ID指对应的进程
kill -9 ID
停止服务。
所以一般是这样
/etc/init.d/mysqld stop
# mysqld_safe --skip-grant-tables &&,
/bin/systemctl stop mysql.service (最近www.oneinstack.com方法安装的,用这句)
表示在后台运行再打开一个终端。
这里无需密码就能进入了。
# mysql
打开mysql.
mysql> use mysql;
修改密码:
mysql 5.6用这一句:
mysql> UPDATE user SET password=password("test123") WHERE user='root';
mysql 5.7用这一句:
mysql> update mysql.user set authentication_string=password('test123') where user='root' and Host = 'localhost';
让其生效。
mysql> flush privileges;
退出。
mysql> exit;
##本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。
[root@iZ626s67tu3Z init.d]# mysqld_safe --skip-grant-tables &
[1] 7221
[root@iZ626s67tu3Z init.d]# 2017-03-15T12:31:32.188353Z mysqld_safe Logging to '/data/mysql/mysql-error.log'.
2017-03-15T12:31:32.238110Z mysqld_safe Starting m
ysqld daemon with databases from /data/mysql
另外是打开3306端口:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
这一句我终于记住了!
还有开启远程访问:
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;
网上还有几篇可参考一下:
http://linux.it.net.cn/e/data/mysql/2015/0222/13247.html
http://blog.csdn.net/wooshn/article/details/7786473
http://blog.csdn.net/yageeart/article/details/7973381