环境准备:
# systemct stop firewalld //关闭防火墙
# setenfoce 0 //关闭selinux
因为centos7的版本默认都安装了mariadb所以需要提前卸载掉
检查是否下过mysql
# yum remove mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
创建mysql用户
#useradd -r mysql -M -s /sbin/nologin
安装编译工具
由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等
# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
获取源码包
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.40.tar.gz
# tar -xvzf mysql-boost-5.7.40.tar.gz -C /usr/local //解压
创建mysql目录
# mkdir -p /usr/local/{data,mysql,log}
编译安装
# cd /usr/local/mysql-5.7.40
# cmake . \
-DWITH_BOOST=boost/boost_1_59_0 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
补充:
-DCAKE_INSTALL_PREFIX=/usr/local/mysql 安装目录
-DSYSCONFDIR=/etc 配置文件存放(默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data 数据目录 错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man 帮助文档
-DMYSQL_TCP_PORT=3306 默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all 扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci 支持的
-DWITH_READLINE=1 上下翻历史命令
-DWITH_SSL=system 使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 支持嵌入式数据库
-DENABLED_LOCAL_INFILE=1 从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 默认的存储引擎,支持外键
# make j4 && make install //4核
如果安装出错,想重新安装:不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
初始化
# chmod -R 777 /usr/local/mysql //修改安装目录权限
初始化
# cd /usr/local/mysql
# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化,只需要初始化一次,初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码
# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql //指定安装目录
datadir=/usr/local/mysql/data //指定数据存放目录,日志文件
启动
# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &
启动之后再按一下回车!即可后台运行
登陆测试
# /usr/local/mysql/bin/mysql -uroot -p'初始化密码'
更改密码
mysql> alter user 'root'@'localhost' identified by 'Yyr123456.';
把mysql启动命令放到bin下
# cd /bin
# vim mysql
/usr/local/mysql/bin/mysql