1. 添加数据库运行时的用户身份 

groupadd -r -g 306 mysql
useradd -r  -u 306 -g 306 mysql

2. 解压并放到指定位置/usr/local

tar -zxvf mariadb-5.5.46-linux-x86_64.tar.gz
mv mariadb-5.5.46 && mv mariadb-5.5.46 /usr/local/mysql

  修改权限确保安全

chown -R root:mysql /usr/local/mysql

3. 创建单独的数据库目录用于存放数据库!

mkdir /mysqldata
chown -R mysql:mysql /mysqldata

4. 准备配置文件

cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf

MySQL配置文件有 /etc/my.cnf ---> /etc/mysql/my.cnf ---->~./my.cnf

读取顺序从左到右,优先级依次递增! 即如果~./my.cnf中与前2个配置冲突,则以~./my.cnf为准


为什么有这么多配置文件?该如何配置呢?

MySQL进程可以运行在不同的用户身份下,通常也叫做不同的MySQL实例。

  1. 如果服务器上仅跑一个数据库实例,那么只需要准备/etc/my.cnf即可

  2. 如果有多个MySQL实例,那么在/etc/my.cnf下可配置全局选项,而~./my.cnf单独针对该实例配置

support-files中有很多的最佳实践的配置文件可供参考


5. 准备环境变量

export PATH=/usr/local/mysql/bin:$PATH

由于是通用二进制包,并没有写入环境变量。而MySQL中某些配置文件使用的是相对路径,并且为了方便地直接调用/usr/local/mysql/bin下的文件,建议添加mysql的目录到环境变量。这是临时修改,要重启也生效,请写入到/etc/profile或自行解决。


6. 初始化数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysqldata

请注意一定要指明--basedir否则在初始化过程中会出现这样的:

FATAL ERROR: Could not find ./bin/my_print_defaults

因为初始化脚本用的是相对的basedir路径,当然了你也可以自行编辑一下脚本


7.  修改/etc/my.cnf配置文件

vim /etc/my.cnf
[mysqld]
datadir=/mysqldata
......

8.添加到服务启动,并且启动mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig -add mysqld
service mysqld start

9. 初始化

二进制包为我们提供了安全初始化脚本,在/usr/local/mysql/bin/mysql_secure_installation

由于之前已经加入环境变量,所以直接使用mysql_secure_installation即可启动。

请注意安全初始化,需要mysqld服务启动后才能正常进行!!