安装路径:/application/mysql-5.7.18
1.前期准备
mysql依赖
libaioyum install -y libaio |
创建用户mysql,以该用户的身份执行mysql
useradd -s /bin/false -M mysql |
下载mysql二进制包并解压
cd /toolswget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gztar -zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /application/ |
切换到/application目录,将mysql文件夹名改短,给mysql目录做一个软链接
cd /application/mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql-5.7.18ln -s mysql-5.7.18/ mysql |
在mysql目录下创建mysql-files,该文件夹权限为750,递归设置mysql目录的所属组和所属用户
mkdir mysql/mysql-fileschmod 750 mysql/mysql-fileschown -R mysql:mysql mysql-5.7.18/ |
2.mysql目录内操作
cd mysql |
初始化数据库
会在mysql目录内生成一个data目录,存放数据库的目录
bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data |
返回结果最后一行的末尾有随机密码,我的记下来:wa0I:1w?V--a
2017-04-28T02:49:00.853710Z 1 [Note] A temporary password is generated for root@localhost: wa0I:1w?V--a |
想设置默认密码为空则将--initialize选项替换为--initialize-insecure选项
bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data |
安装ssl
bin/mysql_ssl_rsa_setup --datadir /application/mysql/data/ |
指定data目录的路径
更改所属用户和组
chown -R root .chown -R mysql data mysql-files |
除了mysql目录下的data目录和mysql-files目录所属用户不变,其他所有文件的所属用户改为root
修改配置文件
sed -i 's/^datadir=//var//lib//mysql/datadir=//application//mysql//data/g' /etc/my.cnfsed -i 's/^socket=//var//lib//mysql//mysql.sock/socket=//tmp//mysql.sock/g' /etc/my.cnfsed -i 's/^log-error=//var//log//mariadb//mariadb.log/log-error=//application//mysql//data//err.log/g' /etc/my.cnfsed -i 's/^pid-file=//var//run//mariadb//mariadb.pid/pid-file=//application//mysql//data//mysql.pid/g' /etc/my.cnf |
等价于:
vi /etc/my.cnfdatadir=/application/mysql/datasocket=/tmp/mysql.socklog-error=/application/mysql/data/err.logpid-file=/application/mysql/data/mysql.pid/etc/my.cnf Content:[mysqld]datadir=/application/mysql/datasocket=/tmp/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mariadb according to the# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]log-error=/application/mysql/data/err.logpid-file=/application/mysql/data/mysql.pid## include all files from the config directory#!includedir /etc/my.cnf.d |