一、创建用户并授权
登录root:
root@localhost:~# mysql -u root -p
创建 username (用户) 使用password (密码) 从任何主机连接到mysql服务器:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
添加一个用户名为db_user,密码为db_pass,授权为% (%表示所有外围IP能连接)对db_name数据库所有权限,命令如下:
mysql> GRANT ALL PRIVILEGES ON db_name.* to db_user@'%' identified by 'db_pass';
创建 username2 () 从ip为192.168.1.1的主机连接到mysql服务器,并使用password作为密码:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'username2'@'192.168.1.1' IDENTIFIED BY 'password' WITH GRANT OPTION;
指定部分权限给用户:
mysql>GRANT select,update on testDB.* to 'test'@'localhost' identified by '1234';
授权test用户拥有所有数据库的某些权限:
mysql>GRANT select,delete,update,create,drop on *.* to 'test'@'%' identified by "1234";
切记:授权完后,刷新系统权限表:
mysql>FLUSH PRIVILEGES;
二、配置mysql允许远程连接
1、开放3306端口
2、打开iptables 3306端口:
root@localhost:~# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
root@localhost:~# iptables-save > /etc/iptables.up.rules #保存iptables规则
root@localhost:~# iptables -nvL #查看添加的iptables规则
三、远程连接
1、显示密码
如:连接远程mysql(39.105.189.51),端口“3306”,用户名为“username”,密码“123456”
001:~ host$ mysql -h 39.105.189.51 -P 3306 -u username -p123456
2、隐藏密码
001:~ host$ mysql -h 39.105.189.51 -u username -p
Enter password:
四、其他常用命令
查看MYSQL数据库中所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看数据库中具体某个用户的权限
mysql> show grants for 'username'@'%';
删除用户
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //删除用户的数据库
删除账户及权限:
>drop user 用户名@'%';
>drop user 用户名@ localhost;
修改指定用户密码
mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost";
mysql>flush privileges;
退出mysql:
mysql>exit;