添加用户
useradd -s /usr/sbin/nologin -r mysql
下载源码包以及解压
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.21.tar.gz
tar -zxf mysql-boost-5.7.21.tar.gz
cd mysql-5.7.21
安装扩展依赖
yum remove mariadb-libs
yum install gcc -y
yum install gcc-c++ -y
yum install cmake -y
yum install libaio -y
yum install ncurses-devel -y
创建mysql的安装目录及数据库存放目录
mkdir -p /data/db/mysql
mkdir -p /data/log/mysql
编译安装mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DMYSQL_DATADIR=/data/mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_SYSTEMD=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DDOWNLOAD_BOOST=1 \
make -j8 && make install
检验是否安装成功
[root@root mysql-5.7.12]# cd /usr/local/mysql/
[root@root mysql]# ls
bin data include man mysql.sock.lock README support-files
COPYING docs lib mysql.sock mysql-test share
新建目录
mkdir -p /data/db/mysql/
mkdir -p /data/log/mysql/
增加配置文件
mkdir /usr/local/mysql/etc
touch /usr/local/mysql/etc/my.cnf
ln -s /usr/local/mysql/etc/my.cnf /usr/local/etc
修改权限
chown -R mysql:mysql /usr/local/mysql/*
chown -R mysql:mysql /data/db/mysql /data/log/mysql
生成初始化密码
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/db/mysql
bin/mysql_ssl_rsa_setup
vim /data/log/mysql/error.log
查看初始化密码
grep 'temporary password' /data/log/mysql/error.log
将mysql的启动服务添加到系统服务中
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
mkdir -p /var/run/mysqld/
chown mysql:mysql /var/run/mysqld
systemctl start mysqld
service mysql start
启动mysql
service mysqld start
检查mysql启动是否正常
service mysqld status 或者 ps -ef | grep mysql
设置mysqld服务开机自启动
systemctl enable mysqld.service
检查mysqld开机自启动是否设置成功
systemctl list-dependencies | grep mysqld
修改mysql密码,以及远程连接权限
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Studytime%';
use mysql;
select host, user from user;
update user set host = '%' where user = 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Studytime%' WITH GRANT OPTION;
FLUSH PRIVILEGES;