CentOS 7 安装MariaDB


MariaDB与 MySQL 区别:

MySQL创始人将 MySQL卖给了 SUN 公司。此后,SUN被甲骨文收购,MySQL的所有权也落入Oracle。有可能面临收费和版权等问题。所以MySQL创始人又在原来的mysql分支上创建了 MariaDB 。支持mysql功能和操作方式并做了扩展。

MariaDB 官网下载地址: https://downloads.mariadb.org/


安装前准备

全部删除MySQL/MariaDB

MySQL 已经不再包含在 CentOS 7 的源中,而改用了 MariaDB;

rpm -qa | grep MariaDB 
rpm -qa | grep mariadb

如果存在(删不了的话,就一个一个删),使用

rpm -e --nodeps mariadb-libs-*

二进制包安装

1、添加系统用户:mysql

useradd -M -s /sbin/nologin mysql
id mysql

2、解压包到 /usr/local/,软连接为 mysql

tar xf mariadb-10.2.37-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -s mariadb-10.2.37-linux-x86_64/ mysql
chown -R root. mysql/
cd /usr/local/mysql

创建数据库存储目录
mkdir /mysqldata

3、添加到系统启动服务,环境变量,查看配置文件生效顺序,并修改配置文件。

cp  support-files/mysql.server   /etc/init.d/mysqld
ll /etc/init.d/mysqld 
-rwxr-xr-x 1 root root 12559 Apr 20 18:12 /etc/init.d/mysqld
# 备注,确保其有执行权限
chkconfig --add mysqld
chkconfig --list mysqld

cp support-files/my-large.cnf /etc/my.cnf
# 备注:support-files 目录下是其配置文件,分为了不同的级别。

vi /etc/my.cnf
[mysqld]
datadir = /mysqldata
skip_name_resolve = ON
innodb_safe_truncate = OFF

vi /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
# 备注:加入到系统环境变量中

source /etc/profile.d/mysql.sh

MariaDB 在10.2.19版本就更新了innodb_safe_truncate这个变量,所以,10.2.19版本~10.3版本还是可以用xtrabackup这个工具的,只不过要把innodb_safe_truncate这个变量OFF掉就可以了。

4、初始化,登录mysql。

scripts/mysql_install_db  --user=mysql  --datadir=/mysqldata

service mysqld  start 

mysql -uroot -hlocalhost -p
# 备注:mysql 安装完成后密码默认为空

service mysqld (restart | start | stop | reload)
# 备注:需要的时候可以这样操作它。

安装好MariaDB后,最好运行一次mysql_secure_installation,初始化MariaDB安全配置

 /usr/local/mysql/bin/mysql_secure_installation
 <–初次运行直接回车
 #是否设置root用户密码,输入y并回车或直接回车
 #设置root用户的密码
 #再输入一次你设置的密码
 #是否删除匿名用户,生产环境建议删除,所以直接回车
 #是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止
 #是否删除test数据库,直接回车
 #是否重新加载权限表,直接回车

mysqld_safe与mysqld区别

mysqld_safe与mysqld区别,直接运行mysqld程序来启动MySQL服务的方法很少见,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。

用mysqld_safe脚本来启动MySQL服务器的做法在BSD风格的unix系统上很常见,非BSD风格的UNIX系统中的 mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的。

它通常做如下事情:

  1. 检查系统和选项。
  2. 检查MyISAM表。
  3. 保持MySQL服务器窗口。
  4. 启动并监视mysqld,如果因错误终止则重启。
  5. 将mysqld的错误消息发送到数据目录中的host_name.err 文件。
  6. 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件。

【mysqld】:是mysql的核心程序,用于管理mysql的数据库文件以及用户的请求操作。mysqld可以读取配置文件中的[mysqld]的部分
mysqld启动命令:

[root@localhost mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

查看mysqld支持的选项:

[root@localhost mysql]# /usr/local/mysql/bin/mysqld --verbose --help

【mysqld_safe】:相当于多了一个守护进程,mysqld挂了会自动把mysqld进程拉起来
1.可以读取的配置部分[mysqld],[server],[myslqd_safe], 为了兼容mysql_safe也会读取[safe_mysqld]中的配置
2.调用的mysqld是可以在[mysqld_safe]中用-mysqld, --mysqld-version指定

mysqld_safe启动命令:

[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaluts-file=/etc/my.cnf & 或者
./mysqld_safe--defaults-file=/etc/my.cnf --user=mysql &

在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。

mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。


MySQL--mysql.sock是什么

mysql的连接方式
mysql的连接方式有:

TCP/IP
socket

当mysql client和mysql server在同一台机器的时候,使用localhost进行连接的时候,就会使用socket建立连接

也就是本地localhost用户是通过这个套接字文件mysql.sock建立连接的

mysql.sock 一般存在于mysql数据目录下