目前阿里, 清华,163等镜像站的Mariadb都是5.5的,有些项目需要用到更新的版本,所以顺便安装一下10版本的,并记录过程
-
添加中科大的Mariadb 10.2.25 yum源,并yum安装
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64
gpgkey = https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
# 需要重新生成yum 缓存,再安装
yum clean all
yum makecache all
# 安装mariadb客户端,服务端
yum install mariadb-server mariadb -y
# 启动
systemctl start mariadb #启动 MariaDB
systemctl enable mariadb #设置开机启动
-
初始化前注意
在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。
➢ 设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)。
➢ 设置 root 管理员在数据库中的专有密码。
➢ 随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业
务的安全性。
➢ 删除默认的测试数据库,取消测试数据库的一系列访问权限。
➢ 刷新授权列表,让初始化的设定立即生效。
-
初始化命令
mysql_secure_installation # 确保mariadb服务器启动后,执行
-
Mariadb修改为中文编码且实时生效并永久保存,需要以下两个步骤
-
数据库正在运行时修改(重启失效)
# 在mariadb命令中设置
MariaDB [(none)]> SET NAMES 'utf8mb4';
MariaDB [(none)]> set character_set_server = utf8mb4;set character_set_database = utf8mb4;set collation_database = utf8mb4_general_ci ;set collation_server = utf8mb4_general_ci ;
-
永久修改, /etc/my.cnf
[client-server]
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
log-error=/var/log/mysqld.log
init-connect='SET NAMES utf8mb4'
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
-
重启mariadb
# stop关闭 mariadb,再start开启才生效, restart重启不行
systemctl stop mariadb
systemctl start mariadb
# 查看修改后的字符编码集,已改为 utf8mb4
show variables like "%character%";show variables like "%collation%";
# 如果你的数据库中已经存在表了,建议进行修复一下
mysqlcheck -u root -p --auto-repair --optimize --all-databases
-
mariadb基本命令
# 1 远程链接mysql服务端
mysql -uroot -p -h 192.168.1.2
# 2 修改mysql密码
MariaDB [(none)]> set password = PASSWORD('redhat123');
# 3 创建mysql用户
create user xiaochun@'%' identified by 'pw666';
# 4 查询mysql库中的用户信息
use mysql;
select host,user,password from user;
# 5 创建数据库
MariaDB [(none)]> create database demo
# 6 创建表
MariaDB [root]> create table test(id int,name char(32));
-
数据库权限设置
mysql使用grant命令对账户进行授权,grant命令常见格式如下
grant 权限 on 数据库.表名 to 账户@主机名 对特定数据库中的特定表授权
grant 权限 on 数据库.* to 账户@主机名 对特定数据库中的所有表给与授权
grant 权限1,权限2,权限3 on *.* to 账户@主机名 对所有库中的所有表给与多个授权
grant all privileges on *.* to 账户@主机名 对所有库和所有表授权所有权限
[例]
# 1 授予×××创建的权限,对于所有的库表生效
grant create on *.* to xiaoming@"%" identified by 'xc666';
# 2 授予×××用户,只有创建mymysql数据库的权限
grant create on mymysql.* to xiaoming@"%" identified by 'xc666';
# 3 授予用户最大的权限,所有的权限
grant all privileges on *.* to username@'%' identified by 'password';
# 4 移除权限
MariaDB [(none)]> revoke all privileges on *.* from xiaoming@"%" identified by 'xc666';
-
数据库的备份与恢复
# 数据库命令备份
mysqldump -u root -p --all-databases > /tmp/db.sql
# 数据导入,方式有2种
source /tmp/db.sql;
或者
mysql -uroot -p < /tmp/db.sql
# 其他的备份工具
navicat
# 如果你数据量特别大的话,使用第三方工具
xtrabackup