本博客为mysql安装实际案例记录
系统版本centos7.5
mysql:mysql-5.7.22.tar.gz
安装之前环境:干净版本centos7.5
# whereis mysql
mysql: /usr/lib64/mysql /usr/share/mysql
# rpm -qa | grep "mariadb"
mariadb-libs-5.5.56-2.el7.x86_64
需要软件包:
mysql源码
网易镜像下载地址:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
官方:https://downloads.mysql.com/archives/community/
操作系统类型要选择source code,才是编译安装要用到的源码包;然后到底部,下载mysql-5.7.22.tar.gz
mysql5.7.22编译需要依赖boost包
boost1.5.9 下载地址:http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
安装步骤:
1.卸载mariadb
查询
# rpm -qa | grep "mariadb"
mariadb-libs-5.5.56-2.el7.x86_64
卸载
# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
警告:/etc/my.cnf 已另存为 /etc/my.cnf.rpmsave
2.上传并解压部署包
cd /usr/local/src/;tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
cd /usr/local/src/;tar -zxvf mysql-5.7.22.tar.gz -C /usr/local/src/
3.安装依赖包
yum -y install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake wget
4.创建mysql安装目录和数据目录
mkdir -p /usr/local/mysql
mkdir -p /r2/mysqldata
5.添加用户并赋予对应目录权限
useradd mysql
chown -R mysql:mysql /r2/mysqldata
chown -R mysql:mysql /usr/local/mysql
6.检测和配置mysql编译环境
cd /usr/local/src/mysql-5.7.22 && cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/r2/mysqldata/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/r2/mysqldata \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=/usr/local/boost_1_59_0
7.编译
cd /usr/local/src/mysql-5.7.22 && make -j4
8.安装
cd /usr/local/src/mysql-5.7.22 && make install
9.添加mysql的环境变量
vim /etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
让其生效source /etc/profile
10.初始化mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/r2/mysqldata
获取初始化密码# grep "root@localhost" /r2/mysqldata/error.log |awk '{print $NF}'
IpRu+>C1_KZ7
初始化失败需要删掉/r2/mysqldata的目录内容
11.把mysql-server加入服务初始点
vim /etc/init.d/mysqld添加下面安装位置
basedir=/usr/local/mysql
datadir=/r2/mysqldata
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
centos7:
cat < /usr/lib/systemd/system/mysql.service
[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.serv