| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
mysql [2021/02/10 21:46] 127.0.0.1 external edit |
mysql [2023/03/08 16:09] (current) xujianglong ↷ Page moved from 内部资料:mysql to mysql |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== MySQL安装 ====== | ||
| + | |||
| + | ===== WSL中MySQL与设置 ===== | ||
| + | |||
| + | 参见:[[https:// | ||
| + | |||
| ====== 常用操作 ====== | ====== 常用操作 ====== | ||
| Line 4: | Line 10: | ||
| <code sql> | <code sql> | ||
| - | create user '< | + | CREATE USER '< |
| </ | </ | ||
| + | |||
| ===== 创建数据库 ===== | ===== 创建数据库 ===== | ||
| <code sql> | <code sql> | ||
| - | create database | + | CREATE DATABASE |
| -- 设置为utf8格式 | -- 设置为utf8格式 | ||
| - | create database | + | CREATE DATABASE |
| </ | </ | ||
| + | |||
| ===== 用户授权 ===== | ===== 用户授权 ===== | ||
| <code sql> | <code sql> | ||
| -- 授予所有数据库的所有权限 | -- 授予所有数据库的所有权限 | ||
| - | grant all privileges | + | GRANT ALL privileges |
| -- 授予单个数据库的所有权限 | -- 授予单个数据库的所有权限 | ||
| - | grant all privileges | + | GRANT ALL privileges |
| </ | </ | ||
| + | |||
| ====== MySQL常用脚本 ====== | ====== MySQL常用脚本 ====== | ||
| Line 26: | Line 38: | ||
| <code sql> | <code sql> | ||
| - | show table status; | + | SHOW TABLE STATUS; |
| </ | </ | ||
| + | |||
| ===== 数据脱敏(录入批量修改手机号码后四位) ===== | ===== 数据脱敏(录入批量修改手机号码后四位) ===== | ||
| <code sql> | <code sql> | ||
| - | update | + | UPDATE |
| - | set phone = replace(phone, SUBSTRING(phone, | + | SET phone = REPLACE(phone, SUBSTRING(phone, |
| --replace函数用于做字符串替换 | --replace函数用于做字符串替换 | ||
| --substring函数用于获取字符串/ | --substring函数用于获取字符串/ | ||
| Line 38: | Line 52: | ||
| --floor函数用于向下取整 | --floor函数用于向下取整 | ||
| --rand函数用于生成随机数(生成结果是在0到1之间的小数) | --rand函数用于生成随机数(生成结果是在0到1之间的小数) | ||
| + | |||
| </ | </ | ||
| + | |||
| ===== 查看数据库大小 ===== | ===== 查看数据库大小 ===== | ||
| Line 45: | Line 61: | ||
| --大小以MB为单位 | --大小以MB为单位 | ||
| SELECT TABLE_SCHEMA, | SELECT TABLE_SCHEMA, | ||
| + | |||
| </ | </ | ||
| + | |||
| ===== 生成随机姓名 ===== | ===== 生成随机姓名 ===== | ||
| Line 51: | Line 69: | ||
| DELIMITER // | DELIMITER // | ||
| CREATE FUNCTION generateRandomName() | CREATE FUNCTION generateRandomName() | ||
| - | RETURNS | + | RETURNS |
| BEGIN | BEGIN | ||
| - | DECLARE xing varchar(2056) DEFAULT ' | + | 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 ; | ||
| + | |||
| </ | </ | ||
| + | |||
| ===== 删除重复数据 ===== | ===== 删除重复数据 ===== | ||
| Line 82: | Line 102: | ||
| <code sql> | <code sql> | ||
| - | delete | + | DELETE |
| INNER JOIN dates t2 | INNER JOIN dates t2 | ||
| WHERE | WHERE | ||
| Line 89: | Line 109: | ||
| t1.month = t2.month AND | t1.month = t2.month AND | ||
| t1.year = t2.year; | t1.year = t2.year; | ||
| + | |||
| </ | </ | ||
| + | |||
| ====== MySQL备份与恢复 ====== | ====== MySQL备份与恢复 ====== | ||
| Line 100: | Line 122: | ||
| # | # | ||
| mysqldump -u < | mysqldump -u < | ||
| + | |||
| </ | </ | ||
| + | |||
| ===== 恢复 ===== | ===== 恢复 ===== | ||
| <code bash> | <code bash> | ||
| mysql -u < | mysql -u < | ||
| + | |||
| </ | </ | ||
| + | |||
| ===== 备份与恢复示例 ===== | ===== 备份与恢复示例 ===== | ||
| Line 115: | Line 141: | ||
| <code bash> | <code bash> | ||
| mysqldump -u test -p 123456 test_db > test_db.bak.sql | mysqldump -u test -p 123456 test_db > test_db.bak.sql | ||
| + | |||
| </ | </ | ||
| + | |||
| * 需要恢复数据库的机器上先重建老数据库(如果没有老数据库跳过该步骤) | * 需要恢复数据库的机器上先重建老数据库(如果没有老数据库跳过该步骤) | ||
| <code bash> | <code bash> | ||
| - | mysql -u test -p 123456 | + | mysql -u test -p 123456> drop database test_db; |
| - | > 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命令行恢复数据库 | * 使用mysql命令行恢复数据库 | ||
| <code bash> | <code bash> | ||
| 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. ===== | ===== 远程连接数据库提示111 Connection refused. ===== | ||
| - | 需要修改mysql配置文件,注释掉bind-server=127.0.0.1启用远程连接。Ubuntu下,MySQL配置文件路径'' | + | 需要修改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 / | ||
| + | |||
| + | </ | ||