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
- [[email protected] ~]$ 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
- [[email protected] ~]$ useradd -s /sbin/nologin -r -u 987 MySQL
- [[email protected] ~]$ mkdir /data/MySQL #创建数据库数据存放目录
- [[email protected] ~]$ chown MySQL:MySQL /data/MySQL
- [[email protected] ~]$ tar xf MySQL-5.7.28.tar.gz -C /usr/local/src/
- [[email protected] ~]$ tar xf boost_1_59_0.tar.gz -C /usr/local/src #编译安装 MySQL-5.7.28 需要依赖 boost_1_59_0 这个包, 需要提前下好
- [[email protected] ~]$ cd /usr/local/src/MySQL-5.7.28
- [[email protected] 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 所在目录
- [[email protected] MySQL-5.7.28]$ make && make install
- [[email protected] MySQL-5.7.28]$ cd /App/MySQL/
- [[email protected] MySQL]$ bin/mysqld --initialize --datadir=/data/MySQL --user=MySQL #生成初始数据库, 在最下面会给一个初始的 root 口令, 需要记下来
- [[email protected] MySQL]$ echo 'PATH=/app/mysql/bin:$PATH'> /etc/profile.d/MySQL.sh #添加 PATH 路径
- [[email protected] MySQL]$ . /etc/profile.d/MySQL.sh
- [[email protected] MySQL]$ cp /App/MySQL/support-files/MySQL.server /etc/init.d/mysqld #复制服务启动脚本
- [[email protected] MySQL]$ chkconfig --add mysqld #加入到开机启动列表里
- [[email protected] 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
- [[email protected] MySQL]$ service mysqld start
- [[email protected] MySQL]$ mysql_secure_installation -p*nr!%iFl%7>i #执行安全加固脚本, 密码为上面生成初始化数据库系统随机分配的密码
如果在 make 编译时报错, 排查完错误之后, 需要先执行 rm -f CMakeCache.txt 操作, 执行完之后再重新进行 make 编译
来源: http://www.bubuko.com/infodetail-3304116.html