编译安装和二进制安装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编译
原文地址:https://www.cnblogs.com/dongzhanyi123/p/11930693.html