Appearance
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 -p2. 数据库管理
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解决中文乱码
1. 检查数据库编码
sql
-- 登录MariaDB后,使用查看编码命令:
> show variables like "%character%";
最终编码要与上表显示一致,重要的是Client和Server编码要是UTF-8。
2. 修改MariaDB的编码
- 打开server.cnf文件
sh
$ vi /etc/my.cnf.d/server.cnf- 在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- 打开mysql-clients.cnf文件
sh
$ vi /etc/my.cnf.d/mysql-clients.cnf- 在mysql-clients.cnf中
[mysql]下添加如下代码
ini
[mysql]
default-character-set=utf8- 重启MariaDB使修改生效
sh
$ systemctl restart mariadbMariaDB修改时区
参考链接:
方法一:通过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; -- 立即生效方法二:修改配置文件实现永久修改
- 修改配置文件
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- 检查结果是否生效
sql
-- 登陆MariaDB,输入以下命令
> show variables like '%time_zone%';
-- 显示如下,说明修改已生效
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | +08:00 |
+------------------+--------+