我们在Linux系统上安装完Mysql后,默认的登陆账号是root且没有密码,所以我们敲“[root@localhost ~]#mysql” 就可以登陆数据库。
但是这样会有弊端。第一、不安全,没有密码。第二、无法远程连接Mysql。
所以接下来,我们要去修改root账户的密码。
一、在Linux系统下修改Mysql密码有两种方式。
1、Linux环境下修改。-------采用Mysqladmin命令
<span style="font-family:KaiTi_GB2312;"><span style="font-family: Tahoma;font-size:14px; orphans: 2; white-space: pre; widows: 2; background-color: rgb(240, 240, 240);">[root@localhost ~]#mysqladmin -u root -p password 'test'</span></span>
<span style="font-family:KaiTi_GB2312;"><span style="font-family: Tahoma;font-size:14px; orphans: 2; white-space: pre; widows: 2; background-color: rgb(240, 240, 240);">Enter password:这里输入root账户修改前的密码。</span></span>
2、Mysql环境下修改。------利用Mysql的update命令
<span style="font-family:KaiTi_GB2312;"></span><div><span style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;font-size:14px;">[root@localhost ~]#mysql -uroot -ptest</span></div><div><span style="font-family:KaiTi_GB2312;"><span style="font-size:14px; text-align: -webkit-auto;"></span></span><div><span style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;font-size:14px;">mysql>update mysql.user set password=password('admin') where user='root';--更新root用户的密码,新密码admin</span></div></div><div><div><span style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;font-size:14px;">mysql>flush privileges;---重新载入赋权表</span></div><div><span style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;font-size:14px;">mysql>exit;</span></div></div>
修改完成后,在登陆mysql时,就提示我们要输入密码。
如果我们忘记root账户的密码,那么该如何修改?
首先我们要有Linux系统root账户的权限
[root@localhost ~]#su - root
查看mysql服务的状态
[root@localhost ~]#netstat -ntpl | grep mysql
tcp 0 0 :::3306 :::* LISTEN 9117/mysqld
停止Mysqld服务
[root@localhost ~]#/etc/init.d/mysqld stop
接下来我们要将启动mysql服务以不验证权限的方式启动mysql
[root@localhost ~]#mysqld_safe --skip-grant-tables &
此时我们就可以不输入密码直接登录mysql了
[root@localhost ~]#mysql
mysql>
接下来,修改密码参照上面。
二、创建远程连接数据库账户并赋权
一般来说,那些远程连接数据的账户只需要开查询权限select
mysql>grant select on 数据库名.表名 to 账号@'%' identified by 密码;
mysql>grant select on *.* to 'test'@'%' identified by 'test';
创建一个管理者的账号,并且对所有数据库都能操作
mysql>grant all privileges on *.* to 'admin'@'%' identified by 'admin' with grant option;
三、查看用户的权限
查看自己的权限
mysql>show grants;
查看其它用户的权限
mysql>show grants for 'admin'@'%';
mysql>show grants for 'root'@'localhost';
四、撤销用户权限
revoke all on *.* from 'admin'@'%';
revoke all on *.* from 'root'@'localhost';