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