CentOS8编译安装MySQL8.0.19
安装准备
1.下载MySQL安装包(下载安装源码 -- Source Code[集成boost])
2.编译环境准备:(已经安装就无需重复操作)针对CentOS其他请百度
dnf install -y make cmake gcc gcc-c++ ncurses-devel libtirpc-devel openssl-devel tar
3.安装rpcgen
- 下载rpcgen
- 解压指定目录
如:/data0/rpcsvc
xz -d rpcsvc-proto-1.4.1.tar.xz && tar -xvf rpcsvc-proto-1.4.1.tar
- 进入rpcgen并预编译
cd rpcsvc-proto-1.4.1
./configure
- 编译安装
make && make install
安装
1.解压MySQL到指定目录
如: /data0/mysql
tar -zxvf mysql-boost-8.0.19.tar.gz
2.创建mysql用户及用户组并禁止mysql用户登录
groupadd mysql && useradd -s /sbin/nologin -g mysql -r mysql
3.创建MySQL的数据,日志,临时目录
mkdir -p /data1/mysql/data && mkdir -p /data1/mysql/logs && mkdir -p /data1/mysql/temp && mkdir -p /data1/mysql/mysqld
4.配置环境变量
- 打开文件:
vi /etc/profile
- 输入:
# MySQL
export MYSQL_HOME=/data0/mysql
export PATH=$MYSQL_HOME/bin:$MYSQL_HOME/lib:$PATH
- 保存并退出
:x
- 让配置马上生效
source /etc/profile
5.编译安装
- 进入解压的MySQL目录并创建编译文件夹build
cd /data0/mysql/mysql-8.0.19 && mkdir build && cd build
- 预编译
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/data0/mysql \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost \
-DMYSQL_UNIX_ADDR=/data1/mysql/temp/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data1/mysql/data \
-DMYSQL_TCP_PORT=11010
预编译结果
- 编译
make
编译结果
- 安装
make install
6.修改MySQL目录拥有者为mysql用户
chown -Rf mysql:mysql /data0/mysql && chown -Rf mysql:mysql /data1/mysql
7.初始化MySQL数据库
- 进入MySQL安装目录
cd /data0/mysql
- 初始化
bin/mysqld --initialize-insecure --basedir=/data0/mysql --datadir=/data1/mysql/data --user=mysql
8.配置/etc/my.cnf文件
vi /etc/my.cnf
9.添加服务,拷贝服务脚本到init.d目录 并设置为开机启动
cp support-files/mysql.server /etc/init.d/mysql && chkconfig mysql on
10.启动MySQL
service mysql start
11.初始化MySQL的root用户密码
mysqladmin -u root password 'root'
12.登录MySQL并初始化数据库
- 登录
mysql -uroot -proot
- 修改信息
| 命令 | 说明 |
|---|---|
| use mysql; | 使用mysql数据库 |
| create user root@'%' identified by 'root'; | 修改root用户可以远程登录,密码为root |
| grant all privileges on . to root@'%' with grant option; | 赋予root用户所有权限 |
| ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; | 修改加密方式适应老的软件(可选) |
| flush privileges; | 刷新配置 |
运行结果
13.运行安全设置脚本
/data0/mysql/bin/mysql_secure_installation
| 提示 | 说明 |
|---|---|
| Enter current password for root (enter for none): | 输入MySQL数据库root用户密码 |
| Press y or Y for Yes, any other key for No: | 你想设置验证密码插件吗 |
| Change the root password? \[Y/n] | 是否改变root密码 |
| Remove anonymous users? \[Y/n] | 是否删除匿名用户 |
| Disallow root login remotely? \[Y/n] | 是否禁止root用户远程登录 |
| Remove test database and access to it? \[Y/n] | 是否删除test库以及相应权限 |
| Reload privilege tables now? \[Y/n] | 重新加载权限表使设置生效 |
运行结果
14.往防火墙添加11010端口以供远程用户访问
firewall-cmd --add-port=11010/tcp --permanent && firewall-cmd --add-port=11010/tcp
15.重启Linux系统尝试从局域网访问
username:root
password:root



