二进制安装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编译