尝试MySQL5.7各种安装姿势
浏览量:1230
一、背景介绍
MySQL5.7系列出来N久,可是当前很多涉世未深的小伙伴连安装部署都不会,今天正好有点空闲时间,张sir将mysql5.7的各种安装方式带小伙伴们走一遍,顺便也提升下自己,如果有需要可以参考下哦(⊙o⊙)哦!!!
我们都知道,软件安装一般常用的有yum、编译、二进制 方式,那么现在大家坐好老司机准备开车了啊。
二、YUM安装MySQL5.7
2.1 yum安装
[root@linux-node1 ~]# cd /usr/local/src/ [root@linux-node1 src]# yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm [root@linux-node1 src]# yum -y install mysql-community-server mysql-community-devel
2.2 初始化
[root@linux-node1 ~]# systemctl start mysqld [root@linux-node1 ~]# systemctl enable mysqld [root@linux-node1 ~]# grep "password" /var/log/mysqld.log #查看初始密码,需要启动后才能查看 [root@linux-node1 src]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 5.7.19 Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
2.3 修改密码
[root@linux-node1 src]#mysql -uroot -p'eZa?x2q;&;l%' mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxx';
三、二进制安装单实例
3.1 下载源码包
[root@linux-node1 src]# wget #下载很慢 [root@linux-node1 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz #建议使用sohu
3.2 创建用户和组
[root@linux-node1 src]# useradd -g mysql -s /sbin/nologin mysql [root@linux-node1 src]# groupadd mysql
3.3 解压
[root@linux-node1 src]# tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ [root@linux-node1 src]# cd /usr/local/ [root@linux-node1 data]# mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql
3.4 创建数据目录并授权
[root@linux-node1 data]# mkdir -p /data/3306/data/ [root@linux-node1 data]# chown -R mysql:mysql /data/
3.5 初始化数据库
[root@linux-node1 bin]# cd /usr/local/mysql/bin/ [root@linux-node1 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data/
记住随机密码:wcOQMfybC9*V
3.6 拷贝配置文件
[root@linux-node1 bin]# cp /usr/local/mysql/support-files/my-default.cnf /data/3306/my.cnf [root@linux-node1 bin]# chown -R mysql.mysql /data/ #vim /data/3306/my.cnf [mysqld] basedir = /usr/local/mysql datadir = /data/3306/data port = 3306 server_id = 129 socket = /tmp/mysql3306.sock sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3.7 启动
[root@linux-node1 data]# ./mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables &
3.8 登录
[root@linux-node1 bin]# mysql -S /tmp/mysql3306.sock Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.17 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
3.9 修改密码
MySQL [(none)]> update mysql.user set authentication_string=password('123456'), password_expired='N' where user='root';
MySQL [(none)]> flush privileges;3.10 密码登录
[root@linux-node1 bin]# mysql -S /tmp/mysql3306.sock -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.17 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
3.11 启动脚本
#vim /data/3306/mysqld
#!/bin/sh
port=3306
mysql_user="root"
mysql_pwd="123456"
CmdPath="/usr/local/mysql/bin/"
mysql_sock="/tmp/mysql3306.sock"
#startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
cd /usr/local/mysql && \
./bin/mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
#stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown 2>&1 > /dev/null
fi
}
#restart function
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac二进制创建多实例只需要和上面一样创建目录初始化即可!
四、二进制安装mysqld_multi管理多实例
4.1 下载源码包
[root@linux-node1 src]# wget #下载很慢 [root@linux-node1 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz #建议使用sohu
参考安装文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
4.2 创建用户和组
[root@linux-node1 src]# useradd -g mysql -s /sbin/nologin mysql [root@linux-node1 src]# groupadd mysql
4.3 解压
[root@linux-node1 src]# tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local [root@linux-node1 src]# cd /usr/local [root@linux-node1 src]# mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql [root@linux-node1 src]# chown -R root.root mysql
4.4 创建相关目录及授权
[root@linux-node1 src]# mkdir /data/mysql/{3306,3307} -p
[root@linux-node1 src]# chown -R mysql:mysql /data/mysql*4.5 提供多实例启动脚本
[root@linux-node1 data]# cd /usr/local/mysql/ [root@linux-node1 mysql]# cp support-files/mysqld_multi.server /etc/init.d/mysqld_multi [root@linux-node1 mysql]# chmod +x /etc/init.d/mysqld_multi [root@linux-node1 mysql]# chkconfig --add mysqld_multi ##注意:添加环境变量 #vim /etc/profile export PATH=$PATH:/usr/local/mysql/bin
4.6 提供my.cnf脚本
[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /data/mysql/mysqld_multi.log [mysqld1] port = 3306 socket = /data/mysql/3306/mysql.sock basedir = /usr/local/mysql datadir = /data/mysql/3306 pid-file = /data/mysql/3306/mysql.pid user = mysql log_error = /data/mysql/3306/mysql-error.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /data/mysql/3306/mysql-slow.log general_log=ON general_log_file= /data/mysql/3306/mysql.log performance_schema = 0 explicit_defaults_for_timestamp [mysqld2] port = 3307 socket = /data/mysql/3307/mysql.sock basedir = /usr/local/mysql datadir = /data/mysql/3307 pid-file = /data/mysql/3307/mysql.pid user = mysql log_error = /data/mysql/3307/mysql-error.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /data/mysql/3307/mysql-slow.log general_log=ON general_log_file= /data/mysql/3307/mysql.log performance_schema = 0 explicit_defaults_for_timestamp
4.7 初始化数据库实例
[root@linux-node1 bin]# cd /usr/local/mysql/bin/ [root@linux-node1 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3306 [root@linux-node1 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307
4.8 启动服务
[root@linux-node1 mysql]# /etc/init.d/mysqld_multi start [root@linux-node1 mysql]# /etc/init.d/mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running
4.9登录并重置账号密码
#3306 [root@linux-node1 mysql]# mysql -uroot -pRlrPg97PLB%E -S /data/mysql/3306/mysql.sock mysql>alter user 'root'@'localhost' identified by '123456'; mysql> flush privileges; #3307 [root@linux-node1 mysql]# mysql -uroot -p>fhaEp>yw3?n -S /data/mysql/3306/mysql.sock mysql>alter user 'root'@'localhost' identified by '123456'; mysql> flush privileges;
3.10 关闭实例
[root@linux-node1 mysql]# mysqladmin -uroot -p123456 -S /data/mysql/3306/mysql.sock shutdown [root@linux-node1 mysql]# /etc/init.d/mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is not running MySQL server from group: mysqld2 is running
编译安装后面会单独写一篇文章!

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。