关于linux安装mysql没有初始化密码、忘记密码、无法远程连接的解决方法

mysql默认root用户没有密码,输入mysql �Cu root 进入mysql

1、初始化root密码

进入mysql数据库

?
1
mysql> update user set password = PASSWORD (‘123456’) where User = 'root' ;

2、允许mysql远程访问,可以使用以下三种方式:

a、改表。

?
1
2
3
4
mysql -u root �Cp
mysql>use mysql;
mysql> update user set host = '%' where user = 'root' ;
mysql> select host, user from user ;

b、授权。

例如,你想root使用123456从任何主机连接到mysql服务器。

?
1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY '123456' WITH GRANT OPTION ;

如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码

?
1
2
mysql> GRANT ALL PRIVILEGES ON *.* TO 'jack' @’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION ;
mysql>FLUSH RIVILEGES

c:在安装mysql的机器上运行:

?
1
2
3
4
5
6
7
8
//进入MySQL服务器
d:\mysql\bin\>mysql -h localhost -u root
//赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出MySQL服务器
mysql>EXIT
-------------------------------------------------------------------------------------
用的linux系统,想做点儿和web相关的应用测试,需要用到mysql,发现安装时没有设置密码,这样不安全阿?
初始话root密码?
安装好mysql后,初始root密码执行
      mysqladmin -u root -p '你的密码'
也可以使用mysqladmin修改root密码
      mysqladmin -u root -p '旧密码' '新密码'

忘记密码咋办呢?
使用mysql的安全模式启动且启动过程中跳过权限表,不加载它,这样进入mysql的是就不需要密码了  
      mysqld_safe --skip-grant-tables &
进入mysql:
     mysql -u root
修改密码:
     update mysql.user set password=password('you password') where user='root';
     flush privileges;//刷新权限

没办法远程连接咋办捏?
同样使用:
       mysqld_safe --skip-grant-tables &
进入mysql输入:
       set global read_only=0;//关闭数据库只读模式
       flush privileges;
       set golbal read_only=1;//将数据库设置为读写模式
       flush privileges;
       grant all privileges on *.*  to root@'%' identified by root;//给root授权,root可以从那里登录可以操作那些数据库和表, 这里的方法仅适用于个人测试环境,切勿使用到生产环境(方法有危险,使用需谨慎!)
       flush privileges;
退出mysql
重启mysql服务,远程登录试试  

你可能感兴趣的:(关于linux安装mysql没有初始化密码、忘记密码、无法远程连接的解决方法)