编译安装和二进制安装mysql
二进制安装mysql-5.6.46
mysql二进制安装,已经编译成二进制了,只需要做一些配置即可
[root@localhost ~]$ yum install autoconf libaio -y
[root@localhost ~]$ useradd -r -s /sbin/nologin -u 987 mysql #创建mysql用户
[root@localhost ~]$ mkdir /data/mysql
[root@localhost ~]$ chown mysql:mysql /data/mysql
[root@localhost ~]$ tar xvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz -C /usr/local #指定解压路径
[root@localhost ~]$ cd /usr/local/
[root@localhost local]$ ln -s mysql-5.6.46-linux-glibc2.12-x86_64 mysql #二进制安装是编译过的,所以解压的路径必须是编译的路径;默认编译路径是/usr/local/mysql,所以对mysql解压包创建个软链接叫mysql
[root@localhost local]$ chown -R root:root mysql/ #递归修改解压包的所有者和所属组
[root@localhost local]$ mkdir /etc/mysql
[root@localhost local]$ cp support-files/my-default.cnf /etc/mysql/my.cnf #复制mysql配置文件到指定目录;mysql配置文件可以放在多个目录;如:/etc/my.cnf、/etc/mysql/my.cnf等
[root@localhost local]$ vim /etc/mysql/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
datadir = /data/mysql #指定数据库数据存放路径
port = 3306
socket = /tmp/mysql.sock
innodb_file_per_table = on #设置存储引擎
skip_name_resolve = on #关闭DNS反向解析
skip-external-locking
[root@localhost local]$ cd /usr/local/mysql
[root@localhost mysql]$ scripts/mysql_install_db --datadir=/data/mysql --user=mysql #执行生成初始数据库的脚本,指定数据库文件所有者为mysql
[root@localhost mysql]$ cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本到指定目录;服务的启动脚本里面一般有chkconfig和description两行标识
[root@localhost mysql]$ chkconfig --add mysqld #把mysqld脚本加到开机启动列表里
[root@localhost mysql]$ echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh #设置PATH路径
[root@localhost mysql]$ . /etc/profile.d/mysql.sh #立即生效
[root@localhost mysql]$ mkdir /var/log/mariadb
[root@localhost mysql]$ touch /var/log/mariadb/mariadb.log
[root@localhost mysql]$ service mysqld start
[root@localhost mysql]$ mysql_secure_installation #执行安全加固脚本
编译安装mysql-5.7.28
[root@localhost ~]$ yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel -y
[root@localhost ~]$ useradd -s /sbin/nologin -r -u 987 mysql
[root@localhost ~]$ mkdir /data/mysql #创建数据库数据存放目录
[root@localhost ~]$ chown mysql:mysql /data/mysql
[root@localhost ~]$ tar xf mysql-5.7.28.tar.gz -C /usr/local/src/
[root@localhost ~]$ tar xf boost_1_59_0.tar.gz -C /usr/local/src #编译安装mysql-5.7.28需要依赖boost_1_59_0这个包,需要提前下好
[root@localhost ~]$ cd /usr/local/src/mysql-5.7.28
[root@centos7 mysql-5.7.28]# cmake . \ #编译mysql没有configure脚本,需要使用cmake,指定参数,生成Makefile文件
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_59_0 #指定boost所在目录
[root@localhost mysql-5.7.28]$ make && make install
[root@localhost mysql-5.7.28]$ cd /app/mysql/
[root@localhost mysql]$ bin/mysqld --initialize --datadir=/data/mysql --user=mysql #生成初始数据库,在最下面会给一个初始的root口令,需要记下来
[root@localhost mysql]$ echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh #添加PATH路径
[root@localhost mysql]$ . /etc/profile.d/mysql.sh
[root@localhost mysql]$ cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld #复制服务启动脚本
[root@localhost mysql]$ chkconfig --add mysqld #加入到开机启动列表里
[root@localhost mysql]$ vim /etc/my.cnf #编辑配置文件
[client]
port=3306
socket=/data/mysql/mysql.sock
[mysqld]
port=3306
skip-external-locking
datadir=/data/mysql
socket=/data/mysql/mysql.sock
[root@localhost mysql]$ service mysqld start
[root@localhost mysql]$ mysql_secure_installation -p*nr!%iFl%7>i #执行安全加固脚本,密码为上面生成初始化数据库系统随机分配的密码
如果在make编译时报错,排查完错误之后,需要先执行rm -f CMakeCache.txt操作,执行完之后再重新进行make编译