发布于 

MySQL笔记

简介

一直使用着 MySQL,可能是因为现代化的编程框架太牛,差点让我忘记了原始的 SQL 怎么写了,再加上 DBA 的加持让我在 MySQL 上的‘造诣’越发卑微。发现很多自己遇到的问题是曾经已经解决过却被自己忽略的问题。

无论是因为 MySQL 版本问题,还是个人专业度问题,我还是觉得很有必要把这些问题记录下来,为后续解决问题提高效率。

写过的关于 MySQL 的文章:

这份笔记会持续更新下去。

授权问题

明明给数据库用户进行了授权,但是显示无法本地访问?

当不加 @ 选项时,效果与加 @'%' 是一样的,'%' 从名义上包括任何主机,% 必须加上引号,不然与 @ 放在一起可能不会被辨认出。

不过因为 MySQL 版本问题(我在 MySQL 5.5.x 版本就遇到这样的问题)'%' 不包括 localhost,需要单独对 @'localhost' 进行赋值。

1
2
3
4
5
6
# DB_NAME.*:数据库下的所有表
# 'name'@'localhost':指定用户 name 的 localhost
# 'PASSWORD':指定用户 name 的密码
GRANT ALL PRIVILEGES ON DB_NAME.* TO 'name'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

flush privileges;

MySQL 主从

1、显示主、从运行状态

在 MySQL-Master 上面可以执行

1
show master status\G

在 MySQL-Slave 上面可以执行

1
2
3
4
show master status\G

# 显示的信息更加全面,包括 Master 的情况都有
show slave status\G

Slave 上面,我们主要看下下面两项是否正常:

1
2
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

基本命令

显示当前登录 mysql 的用户

1
select current_user();

查看当前用户拥有的权限

1
show grants;

查看其他 MySQL 用户的权限

1
2
3
4
# 把 name 换成你自己的登录账号名称
show name@localhost;

show name@%;

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

veryitman