1.数据库权限操作
1.1创建数据库
1 .创建数据库keystone_db并授权给keystone_user用户从哪些地址登录
MariaDB [(none)]> CREATE DATABASE keystone_db CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone_db.* TO 'keystone_user'@'localhost' IDENTIFIED BY 'keystone_pwd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone_db.* TO 'keystone_user'@'%' IDENTIFIED BY 'keystone_pwd';
2 .查看当前在哪个库
select database();
3. 查看有哪些数据库
MariaDB [(none)]> show databases;
1.2修改已存在的库字符集为utf8mb4
1.字符集修改
# 修改库:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# 修改表:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 修改一列:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2.字符集的查看
MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
1.3对数据库进行授权只读和管理用户
1 .创建只读和管理用户
-- 管理员权限
GRANT ALL PRIVILEGES ON keystone_db.* TO 'keystone_admin'@'%' IDENTIFIED BY 'pwd_admin';
-- 只读账号
GRANT Select ON keystone_db.* TO 'keystone_reader'@'%' IDENTIFIED BY "pwd_read";
-- 刷新权限:
FLUSH PRIVILEGES;
2 .移除权限
REVOKE ALL ON keystone_db.* FROM 'keystone_admin'@'%';
#移除 所有 keystone_db库.* 来自 "keystone_admin用户"@所有地址
REVOKE select ON *.* FROM 'keystone_admin'@'%';
#移除 查询 所有库.* 来自 "keystone_admin用户"@所有地址
#刷新权限:
MariaDB [(none)]> FLUSH PRIVILEGES;
3 .查看用户权限
# 具有所有权限
-- show grants for 用户;
MariaDB [(none)]> show grants for keystone_user;
+--------------------------------------------------------------------------------------------------------------+
| Grants for keystone_user@% |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'keystone_user'@'%' IDENTIFIED BY PASSWORD '*DF6189899B5031F828E09AE5459B76FBF3436D24' |
| GRANT ALL PRIVILEGES ON `keystone_db`.* TO 'keystone_user'@'%' |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
# 只有select权限
MariaDB [(none)]> show grants for keystone_reader;
+----------------------------------------------------------------------------------------------------------------+
| Grants for keystone_reader@% |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'keystone_reader'@'%' IDENTIFIED BY PASSWORD '*7A117767F925D66FF88127B76459008FD2A1469D' |
| GRANT SELECT ON `keystone_db`.* TO 'keystone_reader'@'%' |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
2.表操作
2.1查看操作
1. 查看列的结构
desc 表名;
2.修改表名称(速度非常快,3千万数据少于1秒):
alter table 旧名称 rename 新名称;
数据库指定表的增量备份
# 获取当前“备份”表的 最大 ID 号:
mysql -h 127.0.0.1 -ukeystone_user -pkeystone_pwd -e"use keystone_db;select Max(keystone_id) from tbl_ap_keystone_bak;" |awk -F '[ ]' 'NR==2{print $1}'
# 通过备份库的“ID号” 大于这个号的值做备份:35383100 为具体值
mysqldump -h 127.0.0.1 -ukeystone_user -pkeystone_pwd -t keystone_db tbl_ap_keystone --where="keystone_id>35383100" > /opt/data/keystone_db/tbl_ap_keystone.bak.sql
# 将备份的数据修改内部数据库库名:
sed -i "s/tbl_ap_keystone/tbl_ap_keystone_bak/g" /opt/data/keystone_db/tbl_ap_keystone.bak.sql
# 将备份数据增加到备份库
cd /opt/data/keystone_db/ && mysql -h 127.0.0.1 -ukeystone_user -pkeystone_pwd -e"use keystone_db;source tbl_ap_keystone.bak.sql;"