1. MariaDB版本及YUM源配置
1)MariaDB的版本为:10.5
2)系统及版本选择见官方说明:
https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna
我们的服务器是CentOS7.9 x86_64架构。
2)创建YUM源文件:vim /etc/yum.repos.d/MariaDB.repo
,增加如下内容:
# MariaDB 10.5 CentOS repository list - created 2021-02-25 03:04 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
3) 由于国外的YUM源下载速度较慢,可以使用国内的YUM源,具体见
http://mirrors.ustc.edu.cn/help/mariadb.html#fedora-centos-red-hat
更新YUM源内容见文档“使用说明”部分,更改后的YUM源为:
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5.25/centos7-amd64/
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
2. 安装MariaDB
1)执行以下YUM命令进行MariaDB的安装:
yum install MariaDB-server MariaDB-client
2)启动MariaDB
#启动服务
systemctl start mariadb
#设置开机启动
systemctl enable mariadb
#重新启动
systemctl restart mariadb
#停止MariaDB
systemctl stop mariadb
3. 配置MariaDB
3.1. 登录到数据库
执行命令:mysql -uroot -p
登录到MariaDB,此时root账户的密码为空,直接回车即可,退出Mariadb,exit;即可。
3.2. 查看mariadb的版本
MariaDB [(none)]> select version();
MariaDB [(none)]> SHOW VARIABLES LIKE 'VERSION';
3.3. 数据库默认存储引擎
安装后的MariaDB默认使用InnoDB
存储引擎。
存储引擎说白了就是如何管理数据库中的数据在磁盘上的存储文件。InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持事务处理,支持外键,支持崩溃修复能力和并发控制。
InnoDB引擎特点:
- 行级锁
- 支持事务,适合处理大量短期事务
- 读写阻塞与事务隔离级别相关
- 可缓存数据和索引
- 支持聚簇索引
- 崩溃恢复性更好
- 支持MVCC高并发
- 从MySQL5.5后支持全文索引
- 从MySQL5.5.5开始为默认的数据库引擎
InnoDB数据库文件:
- 所有InnoDB表的数据和索引放置于同一个表空间中
表空间文件:datadir定义的目录下
数据文件:ibddata1, ibddata2, ...
- 每个表单独使用一个表空间存储表的数据和索引
启用:innodb_file_per_table=ON
InnoDB系统变量链接:https://mariadb.com/kb/en/library/xtradbinnodb-server-system-variables/#innodb_file_per_tableON (>= MariaDB 5.5)
两类文件放在数据库独立目录中
数据文件(存储数据和索引):tb_name.ibd
表格式定义:tb_name.frm
查看数据库支持的引擎与默认使用的引擎:
--查看数据库支持的存储引擎
MariaDB [(none)]> show engines;
--查看数据库默认的存储引擎
MariaDB [(none)]> show variables like 'storage_engine';
3.4. 进行MariaDB安全性配置
退出MariaDB,在Linux命令行中执行命令:mysql_secure_installation
~]# /usr/bin/mysql_secure_installation
#输入root(mysql)的密码。默认没有,直接回车
Enter current password for root (enter for none):
#是否切换到unix套接字身份验证[Y/n]
Switch to unix_socket authentication [Y/n] n
#是否设置root密码
Change the root password? [Y/n]
#如果选Y,就输入2次密码
New password:
Re-enter new password:
#是否删除匿名用户?(就是空用户),建议删除
Remove anonymous users? [Y/n] y
#是否不允许远程root登录
Disallow root login remotely? [Y/n] n
#是否删除test数据库
Remove test database and access to it? [Y/n] n
#是否加载权限使之生效
Reload privilege tables now? [Y/n] y
初始化MariaDB完成,直接登录,成功。
3.5. 防火墙开放3306端口
~]# firewall-cmd --permanent --add-port=3306/tcp
success
~]# firewall-cmd --reload
success
4. 基本配置
参考:https://tsov.net/home/view/3084/ (MariaDB/MySQL配置文件my.cnf解读)
https://blog.csdn.net/iteye_5495/article/details/82609222
https://blog.csdn.net/yts1115084429/article/details/100888126?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
https://www.cnblogs.com/clschao/articles/9962347.html
4.1. 停止MariaDB数据库
~]# systemctl stop mariadb
4.2. 编辑文件vim /etc/my.cnf.d/server.cnf
[mysqld]
#设置数据库使用端口
port=3306
#默认的数据库存储引擎
default_storage_engine = InnoDB
#数据文件位置
datadir=/data/mysql
#指定socket
socket = /data/mysql/mysql.sock
#设置数据库默认字符集
character-set-server=utf8mb4
#定义可以被发送的最大的包大小
max_allowed_packet = 1024M
#InnoDB 的缓冲池
innodb_buffer_pool_size = 1024M
#事务日志文件写操作缓存区的最大长度(默认设置是1MB)
innodb_log_file_size = 512M
#设置数据库字母大小写不敏感
lower_case_table_names=1
#修改最大连接数
max_connections=1000
#服务器性能工具
performance_schema = ON
#慢日志查询开关
slow_query_log = 1
#慢查询时间
long_query_time = 2
#binlog日志格式,默认采用staterment,建议采用mixed
binlog_format = mixed
#定义了你MySQL应该支持的sql语法,对数据的校验等等。
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#慢查询日志文件
slow_query_log_file = /var/log/slow_query.log
#定义错误日志路径
log-error = /var/log/mysql-error.log
#不执行将IP解析成主机名
skip-name-resolve = ON
4.3. 编辑文件vim /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8mb4
socket = /data/mysql/mysql.sock
4.4. 将MariaDB的数据文件从/var/lib/mysql
迁移到 /data/
~]# touch /var/log/slow_query.log
~]# touch /var/log/mysql-error.log
~]# chown mysql:mysql /var/log/slow_query.log
~]# chown mysql:mysql /var/log/mysql-error.log
~]# mkdir /data
~]# chown -R mysql:mysql /data
~]# mv /var/lib/mysql /data/
4.5. 启动MariaDB
~]# systemctl start mariadb
5. MariaDB的日志
参考:https://blog.csdn.net/han156/article/details/104411306