Skip to content

MariaDB CheetSheet

MariaDB数据库基础知识入门:MariaDB入门 - MariaDB Knowledge Base

MariaDB基本命令

参考链接:

1. 安装与初始化

sh
# 安装MariaDB
$ yum -y install mariadb mariadb-server

# 初始化
$ mysql_secure_installation  

# 查看数据库版本
$ mysql -version

# 登陆root用户
$ mysql -u root -p

# 登陆普通用户(例如:登录`test_user`)
$ mysql -u test_user -p

2. 数据库管理

sql
-- 查看所有数据库
> SHOW DATABASES; 

-- 创建数据库名为`test_db`的数据库
> CREATE DATABASE test_db; 

-- 删除名为`test_db`的数据库
> DROP DATABASE test_db;

3. 用户管理

sql
-- 查看当前用户
> SELECT user();

-- 查看所有用户
> SELECT host,user from mysql.user;

-- 创建名为`test_user1`的用户,可以通过本地主机`localhost`登陆
> CREATE USER 'test_user1'@'localhost' IDENTIFIED BY 'password123456';

-- 创建名为`test_user2`的用户,可以在任意主机`%`登陆
> CREATE USER 'test_user2'@'%' IDENTIFIED BY 'password123456';

-- 将`test_user`重命名为`new_user`:
> RENAME USER 'test_user'@'localhost' TO 'new_user'@'localhost';

4. 用户权限管理

sql
/* 授予用户权限 */

-- 针对`test_db`数据库中的`所有表单`,向`test_user`授予`所有权限`
> GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'%';

-- 针对`test_db`数据库中的`users`表单,向`test_user`授予`查询、更新、删除、插入`权限:
> GRANT SELECT,UPDATE,DELETE,INSERT ON test_db.users TO 'test_user'@'localhost';

-- 向`test_user`授予`所有数据库`的`所有权限`
> GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'%';


/* 移除用户权限 */

-- 针对`test_db`数据库中的**所有表单**,移除`test_user`的`所有权限`
> REVOKE ALL PRIVILEGES ON test_db.* FROM 'test_user'@'%';


/* 查看用户权限 */

-- 查看从任意主机登陆的`test_user`的权限
> SHOW GRANTS FOR 'test_user'@'%'

5. 更改用户密码

需先登录Root用户。

sql
-- 切换到存储用户名和密码的`mysql`数据库
> USE mysql;

-- 更新`mysql`数据库中的`user`表单
-- 将`test_user`的密码修改为`newpassword123`,密码用PASSWORD()函数加密
MariaDB [mysql]> UPDATE user 
MariaDB [mysql]> SET password=PASSWORD('newpassword123') WHERE user='test_user';

-- 刷新用户权限列表
MariaDB [mysql]> flush privileges;

6. 表单数据管理

sql
-- 进入名为`test_db`的数据库
MariaDB [(none)]> USE test_db; 

-- 查看`test_db`中的**所有表单**:
MariaDB [test_db]> SHOW TABLES;

-- 退出当前数据库
> EXIT;

MariaDB解决中文乱码

参考链接:解决MariaDB中文乱码问题 Linux系统

1. 检查数据库编码

sql
-- 登录MariaDB后,使用查看编码命令:
> show variables like "%character%";

MariaDB编码

最终编码要与上表显示一致,重要的是Client和Server编码要是UTF-8。

2. 修改MariaDB的编码

  1. 打开server.cnf文件
sh
$ vi /etc/my.cnf.d/server.cnf
  1. 在server.cnf中的[mysqld]下添加如下代码
ini
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
  1. 打开mysql-clients.cnf文件
sh
$ vi /etc/my.cnf.d/mysql-clients.cnf
  1. 在mysql-clients.cnf中[mysql]下添加如下代码
ini
[mysql]
default-character-set=utf8
  1. 重启MariaDB使修改生效
sh
$ systemctl restart mariadb

MariaDB修改时区

参考链接:

方法一:通过mysql命令临时修改

sql
-- 1.登陆MariaDB,输入以下命令,查看mysql当前时区
> show variables like '%time_zone%';

-- 显示如下
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

-- 2.修改时区
> set global time_zone = '+8:00';  -- 修改mysql全局时区为北京时间,即我们所在的东8区
> set time_zone = '+8:00';  -- 修改当前会话时区
> flush privileges;  -- 立即生效

方法二:修改配置文件实现永久修改

  1. 修改配置文件
sh
# 1.打开server.cnf文件
$ vim /etc/my.cnf.d/server.cnf

# 2.在server.cnf中的[mysqld]下添加如下代码
[mysqld]
default-time_zone = '+8:00'

# 3.重启MariaDB使修改生效
$ systemctl restart mariadb
  1. 检查结果是否生效
sql
-- 登陆MariaDB,输入以下命令
> show variables like '%time_zone%';

-- 显示如下,说明修改已生效
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | +08:00 |
+------------------+--------+