mysql数据库的使用
sql权限
MySQL / MariaDB
- 创建账号
1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- 授权
1
2GRANT ALL PRIVILEGES ON mydb.* TO 'alice'@'localhost';
FLUSH PRIVILEGES;mydb.*为数据库名称,授权整个数据库
PostgreSQL
- 创建账号
1
CREATE USER username WITH PASSWORD 'password';
- 授权
1
GRANT ALL PRIVILEGES ON DATABASE mydb TO alice;
SQL Server
- 创建账号
1
2CREATE LOGIN username WITH PASSWORD = 'password';
CREATE USER username FOR LOGIN username;
Oracle
- 创建账号
1
CREATE USER username IDENTIFIED BY password;
- 授权
1
GRANT CONNECT, RESOURCE TO alice;
数据库的导入导出
.sql逻辑备份文件
整库(含建表语句+数据)导出
直接导出(mariadb使用mariadb-dump)
记得如果-p后没有加密码,是隐藏输入的,第一行输入密码回显会污染文件,删除.sql文件中第一行即可
1 | mysqldump -u 用户 -p --single-transaction --routines --triggers --events --hex-blob 库名 > bak.sql |
- —single-transaction 保证 InnoDB 一致性且不锁表(生产必备)
- —routines 导出存储过程/函数
- —hex-blob 防止二进制乱码
压缩导出(mariadb使用mariadb-dump)1
mysqldump -u 用户 -p --single-transaction --routines --triggers --events --hex-blob 库名 | gzip > bak.sql.gz
检查备份,看头 20 行确认有建表语句1
head -n 20 bak.sql
.sql逻辑备份文件导出导入
在需要导入的数据库中新建一个数据库,然后退出1
2create database 库名;
exit;
到备份文件目录下执行1
mysql -u root -p 库名 < bak.sql
题外话:如果是mariadb备份文件导入mysql是支持的,只是有可能版本的排序规则不支持,MariaDB 10.10+ 新增的 Unicode 14.0 排序规则给mysql8.0的修改方法如下:1
sed -i 's/utf8mb4_uca1400_ai_ci/utf8mb4_0900_ai_ci/g' bak.sql
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HAHA!

