linux之Mysql数据库基础及安全配置
2018年8月22日 星期三
21:24
1. 修改mysql管理员账号root的密码:
方法一:shell命令
mysqladmin -u root -p password "123"
方法二:mysql数据库命令=
mysql>use mysql;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES; #刷新
2. mysql管理员root账号密码遗忘
方法一:
killall -TERM mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
mysql>use mysql;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
重新启动MySQL,使用新密码登录
方法二:
修改/etc/my.cnf
在[Mysqld]下添加:
skip-grant-tables
重启MySQL服务
mysql -u root
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
重新启动MySQL,使用新密码登录
3、管理数据库用户
方法一:
mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');
方法二:
mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';
4、默认配置文件:/etc/my.cnf
5、用户授权:
新用户授权(不存在的用户):
mysql> GRANT 权限列表 ON 库或表 TO '用户名'@'登录IP或域名' IDENTIFIED BY '123456';
老用户授权:
mysql> GRANT 权限列表 ON 库或表 TO '用户名'@'登录IP或域名'
权限列表:
all——所有权限
select,insert,update,drop,delete,create等
库或表:
*.*——所有库,所有表
登录IP或域名:
%——表示没有限制,在任何主机都可以登录
192.168.120.%——表示在192.168.120.0网段可以登录
1)本地权限
mysql> CREATE DATABASE userdb;
mysql> GRANT select ON userdb.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'zhangsan'@'localhost';
mysql> CREATE USER 'lisi'@'localhost' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'lisi'@'localhost';
mysql>use userdb;
mysql>CREATE TABLE users(user_name CHAR(16) NOT NULL,user_passwd CHAR(48) DEFAULT '',PRIMARY KEY (user_name));
mysql>CREATE TABLE users2 (user_name CHAR(16) NOT NULL,user_passwd CHAR(48) DEFAULT '',PRIMARY KEY (user_name));
mysql>INSERT INTO users(user_name,user_passwd) VALUES('test1',PASSWORD('123456'));
mysql>INSERT INTO users VALUES('test2',PASSWORD('123456'));
mysql -u zhangsan -p
mysql> SELECT * FROM usedb.users;(验证权限)
mysql>quit;
mysql -u lisi -p
mysql> SELECT * FROM usedb.users;(再次验证权限)
mysql>quit;
2)网络连接权限
mysql>GRANT all ON userdb.* TO 'wangwu'@'%' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'wangwu'@'%';
从另一台Linux的Mysql客户端登录验证
mysql -h 192.168.5.116 -P 3306 -u wangwu -p123456
mysql> SELECT * FROM usedb.users;
mysql> INSERT INTO users VALUES('test3',PASSWORD('123456'));
mysql> SELECT * FROM usedb.users;
mysql>delete from usedb.users where user_name=’test3’;
mysql> SELECT * FROM usedb.users;
mysql> DROP table usedb.users2;
mysql>use userdb;
mysql>show tables;
mysql>quit;
3)撤销权限
mysql>REVOKE all ON userdb.* FROM 'wangwui'@'%';
mysql>SHOW GRANTS FORM 'xiaoqi'@'localhost';
从另一台Linux的Mysql客户端登录验证,过程同上!