This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mysql [2018/01/11 14:14] 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 '< | ||
- | ```sql | + | </ |
+ | |||
+ | ===== 创建数据库 ===== | ||
+ | |||
+ | < | ||
+ | CREATE DATABASE < | ||
+ | -- 设置为utf8格式 | ||
+ | CREATE DATABASE < | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 用户授权 ===== | ||
+ | |||
+ | <code sql> | ||
-- 授予所有数据库的所有权限 | -- 授予所有数据库的所有权限 | ||
- | grant all privileges | + | GRANT ALL privileges |
-- 授予单个数据库的所有权限 | -- 授予单个数据库的所有权限 | ||
- | grant all privileges | + | GRANT ALL privileges |
- | ``` | + | |
+ | </ | ||
+ | |||
+ | ====== MySQL常用脚本 ====== | ||
+ | |||
+ | ===== 实时统计数据库表行数 ===== | ||
+ | |||
+ | <code sql> | ||
+ | SHOW TABLE STATUS; | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 数据脱敏(录入批量修改手机号码后四位) ===== | ||
+ | |||
+ | <code sql> | ||
+ | UPDATE | ||
+ | SET phone = REPLACE(phone, | ||
+ | --replace函数用于做字符串替换 | ||
+ | --substring函数用于获取字符串/ | ||
+ | --lpad函数用于左侧自动补全 | ||
+ | --floor函数用于向下取整 | ||
+ | --rand函数用于生成随机数(生成结果是在0到1之间的小数) | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 查看数据库大小 ===== | ||
+ | |||
+ | <code sql> | ||
+ | USE information_schema; | ||
+ | --大小以MB为单位 | ||
+ | SELECT TABLE_SCHEMA, | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 生成随机姓名 ===== | ||
+ | |||
+ | <code sql> | ||
+ | DELIMITER // | ||
+ | CREATE FUNCTION generateRandomName() | ||
+ | RETURNS VARCHAR(255) CHARSET utf8 | ||
+ | BEGIN | ||
+ | DECLARE xing VARCHAR(2056) DEFAULT ' | ||
+ | DECLARE ming VARCHAR(2056) DEFAULT ' | ||
+ | |||
+ | DECLARE l_xing INT DEFAULT LENGTH(xing) / 3; # 这里的长度不是字符串的字数, | ||
+ | DECLARE l_ming INT DEFAULT LENGTH(ming) / 3; | ||
+ | |||
+ | DECLARE return_str VARCHAR(255) DEFAULT ''; | ||
+ | |||
+ | # 先选出姓 | ||
+ | SET return_str = CONCAT(return_str, | ||
+ | |||
+ | # | ||
+ | SET return_str = CONCAT(return_str, | ||
+ | |||
+ | IF RAND()> | ||
+ | # | ||
+ | SET return_str = CONCAT(return_str, | ||
+ | END IF; | ||
+ | |||
+ | RETURN return_str; | ||
+ | END;// | ||
+ | |||
+ | DELIMITER ; | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 删除重复数据 ===== | ||
+ | |||
+ | 参考资料:[[https:// | ||
+ | |||
+ | <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:// | ||
+ | |||
+ | ===== 备份 ===== | ||
+ | |||
+ | <code bash> | ||
+ | # | ||
+ | # | ||
+ | mysqldump -u < | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 恢复 ===== | ||
+ | |||
+ | <code bash> | ||
+ | mysql -u < | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 备份与恢复示例 ===== | ||
+ | |||
+ | 假设需要备份与还原的数据库名称为test_db,用户名为test,密码为123456 | ||
+ | |||
+ | * 打开Windows命令行或者Linux/ | ||
+ | * 在命令行输入如下命令备份数据库 | ||
+ | |||
+ | <code bash> | ||
+ | mysqldump -u test -p 123456 test_db > test_db.bak.sql | ||
+ | |||
+ | </ | ||
+ | |||
+ | * 需要恢复数据库的机器上先重建老数据库(如果没有老数据库跳过该步骤) | ||
+ | |||
+ | <code bash> | ||
+ | mysql -u test -p 123456> drop database test_db; | ||
+ | > create database test_db default character set utf8 default collate utf8_general_ci; | ||
+ | |||
+ | </ | ||
+ | |||
+ | * 使用mysql命令行恢复数据库 | ||
+ | |||
+ | <code bash> | ||
+ | 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配置文件路径`/ |