MySQL二进制免编译安装步骤总结如下,以MySQL5.7.24为例:
【创建用户】
# useradd -r -s /sbin/nologin mysql
【解压Binaries包】
# cd /tmp
# wget mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# mv /usr/local/mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
# chown mysql.mysql -R /usr/local/mysql
【配置环境变量】
# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
【配置my.cnf】
# vim /etc/my.cnf
[mysqld]
port = 3306
server_id = 100
basedir = /usr/local/mysql
datadir = /data/mysql3306
socket = /tmp/mysql3306.sock
pid-file = /data/mysql3306/mysql3306.pid
log-bin = /data/mysql3306/mysql-bin
log-error=/data/mysql3306/3306.log
【创建数据目录】
# mkdir /data/mysql3306 -p
# chown -R mysql:mysql /data/mysql3306
【初始化数据库】
需yum安装:yum -y install perl
MySQL5.6之前版本mysql_install_db是在mysql_basedir/script下
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306
MySQL 5.7放在了mysqll_basedir/bin目录下,且已被废弃
# /usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql3306 --user=mysql
"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码,--datadir目标目录下不能有数据文件。
【启停mysql】
# nohup mysqld_safe --defaults-file=/etc/my.cnf > /data/mysql3306/start_stop.log 2>&1 &
# mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown
【初始化密码】
# mysqladmin -u root password 'root' -S /tmp/mysql3306.sock
【配置机启动项】
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
启停服务:
# service mysqld start
# service mysqld stop