源码编译安装Mysql5.7
#安装依赖库
yum install -y cmake make gcc gcc-c++ libaio ncurses bash-completion ncurses-devel bison-devel
#下载源码包并解压
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.22.tar.gz
tar zxvf mysql-boost-5.7.22.tar.gz
cd mysql-5.7.22/
#编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BOOST=boost \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_SYSTEMD=1
make -j 2 && make install
#创建用户,并更改权限
groupadd mysql
useradd -r -g mysql mysql
mkdir -pv /data/mysql
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql
#复制服务器启动项
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#创建配置文件
vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/usr/local/mysql/mysql.sock
lower_case_table_names = 1
log_error=/log/mysql/mysql.log
server-id=1
pid-file=/var/run/mysqld/mysqld.pid
explicit_defaults_for_timestamp=true
#创建log目录与pid目录
mkdir -p /log/mysql
chown -R mysql: /log/mysql
mkdir -p /var/run/mysqld
chown -R mysql: /var/run/mysqld
#添加环境变量
echo "export PATH=/usr/local/mysql/bin:\$PATH" > /etc/profile.d/mysql.sh
source /etc/profile
#初始化 mysql 数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
#启动数据库
systemctl start mysqld
免编译安装Mysql5.7
#安装依赖库
yum install -y cmake make gcc gcc-c++ libaio ncurses bash-completion ncurses-devel bison-devel
#下载源码包并解压
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64/ /usr/local/mysql
#创建用户,并更改权限
groupadd mysql
useradd -r -g mysql mysql
mkdir -pv /data/mysql
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql
#初始化 mysql 数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql
#创建log目录与pid目录
mkdir -pv /log/mysql
chown -R mysql:mysql /log/mysql/
mkdir -pv /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld/
echo "" > /log/mysql/mysql.log
chown -R mysql:mysql /log/mysql/mysql.log
#创建配置文件
vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/usr/local/mysql/mysql.sock
lower_case_table_names = 1
log-error=/log/mysql/mysql.log
server-id=1
pid-file=/var/run/mysqld/mysqld.pid
explicit_defaults_for_timestamp=true
[client]
socket = /usr/local/mysql/mysql.sock
#复制服务器启动项
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysql
service mysqld start
ln -s /usr/local/mysql/bin/mysql /usr/bin
配置安全向导
mysql_secure_installation
Enter current password for root (enter for none): <–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,建议禁止
Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
配置用户
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;