This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mysql [2019/05/24 11:13] jordan [数据脱敏(录入批量修改手机号码后四位)] |
mysql [2023/03/08 16:09] (current) xujianglong ↷ Page moved from 内部资料:mysql to mysql |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | # 常用操作 | + | ====== MySQL安装 ====== |
- | ## 创建用户 | + | ===== WSL中MySQL与设置 ===== |
- | ```sql | + | 参见:[[https:// |
- | create user '< | + | |
- | ``` | + | |
- | ## 创建数据库 | + | ====== 常用操作 ====== |
- | ```sql | + | ===== 创建用户 ===== |
- | create database | + | |
+ | <code sql> | ||
+ | CREATE USER '< | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 创建数据库 ===== | ||
+ | |||
+ | < | ||
+ | CREATE DATABASE | ||
-- 设置为utf8格式 | -- 设置为utf8格式 | ||
- | create database | + | CREATE DATABASE |
- | ``` | + | |
+ | </ | ||
- | ## 用户授权 | + | ===== 用户授权 |
- | ```sql | + | < |
-- 授予所有数据库的所有权限 | -- 授予所有数据库的所有权限 | ||
- | grant all privileges | + | GRANT ALL privileges |
-- 授予单个数据库的所有权限 | -- 授予单个数据库的所有权限 | ||
- | grant all privileges | + | GRANT ALL privileges |
- | ``` | + | |
- | # MySQL常用脚本 | + | </ |
- | ## 数据脱敏(录入批量修改手机号码后四位) | + | ====== MySQL常用脚本 ====== |
- | ```sql | + | ===== 实时统计数据库表行数 ===== |
- | update | + | |
- | set phone = replace(phone, SUBSTRING(phone, | + | <code sql> |
+ | SHOW TABLE STATUS; | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 数据脱敏(录入批量修改手机号码后四位) ===== | ||
+ | |||
+ | < | ||
+ | UPDATE | ||
+ | SET phone = REPLACE(phone, SUBSTRING(phone, | ||
--replace函数用于做字符串替换 | --replace函数用于做字符串替换 | ||
--substring函数用于获取字符串/ | --substring函数用于获取字符串/ | ||
Line 36: | Line 52: | ||
--floor函数用于向下取整 | --floor函数用于向下取整 | ||
--rand函数用于生成随机数(生成结果是在0到1之间的小数) | --rand函数用于生成随机数(生成结果是在0到1之间的小数) | ||
- | ``` | ||
- | ## 查看数据库大小 | + | </ |
- | ```sql | + | ===== 查看数据库大小 ===== |
+ | |||
+ | < | ||
USE information_schema; | USE information_schema; | ||
--大小以MB为单位 | --大小以MB为单位 | ||
SELECT TABLE_SCHEMA, | SELECT TABLE_SCHEMA, | ||
- | ``` | ||
- | ## 生成随机姓名 | + | </ |
- | ```sql | + | |
+ | ===== 生成随机姓名 | ||
+ | |||
+ | < | ||
DELIMITER // | DELIMITER // | ||
CREATE FUNCTION generateRandomName() | CREATE FUNCTION generateRandomName() | ||
- | RETURNS | + | RETURNS |
BEGIN | BEGIN | ||
- | DECLARE xing varchar(2056) DEFAULT ' | + | |
- | DECLARE ming varchar(2056) DEFAULT ' | + | DECLARE ming VARCHAR(2056) DEFAULT ' |
- | + | ||
- | DECLARE l_xing | + | DECLARE l_xing |
- | DECLARE l_ming | + | DECLARE l_ming |
- | + | ||
- | DECLARE return_str | + | DECLARE return_str |
- | + | ||
- | # 先选出姓 | + | # 先选出姓 |
- | SET return_str = CONCAT(return_str, | + | SET return_str = CONCAT(return_str, |
- | + | ||
- | # | + | # |
- | SET return_str = CONCAT(return_str, | + | SET return_str = CONCAT(return_str, |
- | + | ||
- | IF RAND()> | + | IF RAND()> |
- | # | + | # |
- | SET return_str = CONCAT(return_str, | + | SET return_str = CONCAT(return_str, |
- | END IF; | + | END IF; |
- | + | ||
- | RETURN return_str; | + | RETURN return_str; |
END;// | END;// | ||
DELIMITER ; | DELIMITER ; | ||
- | ``` | ||
- | # MySQL备份与恢复 | + | </ |
- | [参考资料](http:// | + | ===== 删除重复数据 ===== |
- | ## 备份 | + | 参考资料:[[https:// |
- | ```bash | + | <code sql> |
+ | DELETE t1 FROM dates t1 | ||
+ | INNER JOIN dates t2 | ||
+ | WHERE | ||
+ | t1.id < t2.id AND | ||
+ | t1.day = t2.day AND | ||
+ | t1.month = t2.month AND | ||
+ | t1.year = t2.year; | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== MySQL备份与恢复 ====== | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ===== 备份 ===== | ||
+ | |||
+ | < | ||
# | # | ||
# | # | ||
mysqldump -u < | mysqldump -u < | ||
- | ``` | ||
- | ## 恢复 | + | </ |
- | ```bash | + | ===== 恢复 ===== |
+ | |||
+ | < | ||
mysql -u < | mysql -u < | ||
- | ``` | ||
- | ## 备份与恢复示例 | + | </ |
+ | |||
+ | ===== 备份与恢复示例 | ||
假设需要备份与还原的数据库名称为test_db,用户名为test,密码为123456 | 假设需要备份与还原的数据库名称为test_db,用户名为test,密码为123456 | ||
- | * 打开Windows命令行或者Linux/ | + | |
- | * 在命令行输入如下命令备份数据库 | + | * 在命令行输入如下命令备份数据库 |
- | ```bash | + | < |
mysqldump -u test -p 123456 test_db > test_db.bak.sql | mysqldump -u test -p 123456 test_db > test_db.bak.sql | ||
- | ``` | ||
- | * 需要恢复数据库的机器上先重建老数据库(如果没有老数据库跳过该步骤) | + | </ |
- | ```bash | + | * 需要恢复数据库的机器上先重建老数据库(如果没有老数据库跳过该步骤) |
- | mysql -u test -p 123456 | + | |
- | > drop database test_db; | + | < |
+ | mysql -u test -p 123456> drop database test_db; | ||
> create database test_db default character set utf8 default collate utf8_general_ci; | > create database test_db default character set utf8 default collate utf8_general_ci; | ||
- | ``` | ||
- | * 使用mysql命令行恢复数据库 | + | </ |
- | ```bash | + | * 使用mysql命令行恢复数据库 |
+ | |||
+ | < | ||
mysql -u test -p 123456 test_db < test_db.bak.sql | mysql -u test -p 123456 test_db < test_db.bak.sql | ||
- | ``` | ||
- | # 常见问题与解决方案 | + | </ |
+ | |||
+ | ====== | ||
+ | |||
+ | ===== 远程连接数据库提示111 Connection refused. ===== | ||
+ | |||
+ | 需要修改mysql配置文件,注释掉bind-server=127.0.0.1启用远程连接。Ubuntu下,MySQL配置文件路径''< | ||
+ | |||
+ | ===== 本地登录时加127.0.0.1才能登录而不能用localhost ===== | ||
+ | |||
+ | 直接通过localhost登录或者加-h localhost,提示Can' | ||
+ | |||
+ | < | ||
+ | [client] | ||
+ | host=127.0.0.1 | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== InnoDB Failing to start / MySQL not loading plugins ====== | ||
+ | |||
+ | < | ||
+ | rm -rf / | ||
+ | |||
+ | </ | ||
- | ## 远程连接数据库提示111 Connection refused. | ||
- | 需要修改mysql配置文件,注释掉bind-server=127.0.0.1启用远程连接。Ubuntu下,MySQL配置文件路径`/ |