MySQL操作笔记

MySQL是我最常用的关系型数据库,不过运维相关的一些命令,我不是很常用,但是偶尔又要用,每次都要去搜索太麻烦了,遂作笔记。

把默认编码设置为 utf8mb4

更改 /etc/mysql/my.cnf,ubuntu的话,更改 /etc/mysql/conf.d/mysql.cnf

[client]
default-character-set = utf8mb4

[mysqld]
collation_server = utf8mb4_unicode_ci
character_set_server = utf8mb4

[mysql]
default-character-set = utf8mb4

创建用户,授权,删除用户,删除授权

> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
> GRANT ALL PRIVILEGES ON mydb.* TO 'monty'@'localhost';
> FLUSH PRIVILEGES;
> quit

@ 后面接地址,可以是IP地址,也可以是 % 代表所有地址,也可以是 localhost 代表本地。

删除用户之后,授权会被一起删掉:

> DROP USER dbadmin@localhost;

查看授权:

> SHOW GRANTS FOR rfc@localhost;

如果只想删除授权的话:

> REVOKE INSERT, UPDATE ON classicmodels.* FROM rfc@localhost;

更改密码

> ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
> FLUSH PRIVILEGES;

设置root密码

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

否则会一直报错 ERROR 1698 (28000): Access denied for user 'root'@'localhost'。这样修改之后,在本地连接才能使用密码。

备份

我本地的MySQL有一个cronjob每天进行备份:

@daily /usr/bin/mysqldump --single-transaction --quick --lock-tables=true --all-databases | gzip -c > /backup/mysql-$(date +\%F).sql.gz

参考资料:


更多文章
  • 使用 PostgreSQL 搭建 JuiceFS
  • PostgreSQL 配置优化和日志分析
  • 有GitHub Copilot?那就可以搭建你的ChatGPT4服务
  • 窗口函数的使用(以PG为例)
  • 读《为什么学生不喜欢上学》
  • OpenAI Prompt Engineering 摘录和总结
  • 读《打造真正的新产品》
  • 2023年终总结
  • VueJS 总结
  • Linux 自动挂载 alist 提供的webdav
  • FreeBSD 使用 vm-bhyve 安装Debian虚拟机
  • FreeBSD 和 Linux 网卡聚合实现提速
  • GPT 帮我搞定了时区转换问题
  • 长任务系统如何处理?
  • macOS/Linux 编译 InputLeap