| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
mysql [2020/02/16 22:46] 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配置文件路径`/ | ||