(1)查看系统中是否存在mysql
[root@centos7 ~]# rpm -qa mariadb*
[root@centos7 ~]#
注意:存在则删除 yum remove mysql
(2)准备用户
getent passwd mysql
useradd –d /app/mysqldb -r -m -s /sbin/nologin mysql (-d 指定用户的家目录 -r 创建系统用户 -s 指定用户的shell类型)
(3)解压之准备二进制程序
tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/ -C解压到指定目录下
Cd /usr/local/
ln -s mariadb-10.2.8-linux-x86_64/ mysql 创建软连接
(4)准备配置文件
配置文件格式:类ini格式,各程序由单个配置文件提供配[prog_name]
配置文件查找次序:后面覆盖前面的配置文件
/etc/my.cnf--> /etc/mysql/my.cnf--> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
[root@centos7 local]# cd mysql/
[root@centos7 mysql]# ls
bin EXCEPTIONS-CLIENT mysql-test sql-bench
COPYING include README.md support-files
COPYING.thirdparty INSTALL-BINARY README-wsrep
CREDITS lib scripts
data man share
[root@centos7 mysql]# cp support-files/m
magic my-large.cnf mysqld_multi.server
my-huge.cnf my-medium.cnf mysql-log-rotate
my-innodb-heavy-4G.cnf my-small.cnf mysql.server
[root@centos7 mysql]# mkdir /etc/mysql/
[root@centos7 mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]中添加三个选项:
datadir = /app/mysqldb
innodb_file_per_table = on
skip_name_resolve = on 禁止主机名解析
(5) 创建数据库文件
cd /usr/local/mysql/
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb
(6)准备服务脚本,并启动服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --list mysqld
chkconfig --add mysqld 添加
service mysqld start 失败
(7)准备日志文件
mkdir /var/log/mariadb/
chown mysql /var/log/mariadb/
service mysqld start
(8)设置环境变量
vim /etc/profile.d/mysql.sh
PATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysql.sh
(9)安全初始化
mysql_secure_installation lsls
(10)静默模式登陆
mysq l - uroot - p
注意:在centos 6.9二进制安装mariadb 5.5.57时,只在创建日志文件有所不同。
touch /var/log/mysqld.log
实验:用脚本实现上述两个实验
#!/bin/bash
# -----------------------
# filename:mysql06.sh
# revision:2.0
# date: 2017-10-14# author:lixueping
# email:
# website:
# description:
# --------------------
export release=`cat /etc/centos-release|grep -o "[ ][0-9]\>" |tr -d " "`
echo "
--------------------------------------------------------------
|**************** Initialization starts ********************|
--------------------------------------------------------------
"
if [ $release -eq 7 ]; then
yum remove -y mysql &> /dev/null
tar xvf ~/mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mariadb-10.2.8-linux-x86_64/ /usr/local/mysql
userdel -r mysql $> /dev/null
useradd -r -d /app/mysqldb -m -s /sbin/nologin mysql
mkdir /etc/mysql
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
sed -i '/\[mysqld\]>/a\datadir = /app/mysqldb\ninnodb_file_per_table = on\nskip_name_resolve = on' /etc/mysql/my.cnf
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb &> /dev/null
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
mkdir /var/log/mariadb
chown mysql /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown mysql /var/log/mariadb/mariadb.log
echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
elif
[ $release -eq 6 ] ; then
rpm -qa mysql && echo $? &>/dev/null
yum remove -y mysql
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mariadb-5.5.57-linux-x86_64/ /usr/local/mysql
userdel -r mysql &> /dev/null
useradd -r -d /app/mysqldb -m -s /sbin/nologin mysql
mkdir /etc/mysql
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
sed -i '/\[mysqld\]>/a\datadir = /app/mysqldb\ninnodb_file_per_table = on\nskip_name_resolve = on' /etc/mysql/my.cnf
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb &> /dev/null
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
#在6上日志文件/var/log/mysqld.log
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log
echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
else
exit
fi