CentOS7编译安装MySQL8.0
1、下载mysql8.0.16源码包和cmake源码包
cd /usr/local/src
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.16.tar.gz
cname源码包下载地址:https://cmake.org/download/
我这里下载了一个cmake-3.15.0-rc1.tar.gz
注意mysql的源码包一定不要下错了,下错了会报错:does not appear to contain CMakeLists.txt
2、编译安装cmake
2.1、解压cmake并进入目录
tar zxf cmake-3.15.0-rc1.tar.gz
cd cmake-3.15.0-rc1
2.2、配置、编译、安装
./configure --prefix=/usr/local/cmake
make
make install
--prefix 参数是配置cmake的安装目录
2.3、做cmake命令软连接,查看cmake版本
ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
cmake --version
3、编译安装mysql8,在安装之前需要升级GCC(传送阵:升级gcc)
3.1、解压mysql8源码包并进入目录
cd /usr/local/src
tar zxf mysql-boost-8.0.16.tar.gz
cd mysql-8.0.16
3.2、配置、编译、安装(配置编译报错集合)
mkdir bld
cd bld
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/src/mysql-8.0.16/boost \
-DFORCE_INSOURCE_BUILD=1 \
-DCMAKE_CXX_COMPILER=/usr/local/gcc/bin/g++ \
-DDEFAULT_CHARSET=utf8
make
make install
4、创建数据库用户
useradd -s /sbin/nologin mysql
5、创建数据存放目录并修改权限
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
6、修改配置文件(根据自己的情况来配置)
[mysqld]
port=3306
server-id=1
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
[client]
socket=/usr/local/mysql/mysql.sock
7、初始化数据库并安装ssl
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysql_ssl_rsa_setup
8、复制启动脚本、启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
9、修改mysql密码(忘记密码)
9.1在配置文件中的[mysqld]下加入skip-grant-tables
vim /etc/my.cnf
[mysqld]
skip-grant-tables
9.2重启mysql
/etc/init.d/mysqld restart
9.3登录数据库后,修改密码为空。
mysql
mysql >use mysql;
mysql >update user set authentication_string="" where user='root';
mysql >flush privileges;
mysql > exit;
9.4在配置文件中删除skip-grant-tables并重启mysql
/etc/init.d/mysqld restart
9.5登录mysql,修改密码
mysql -uroot -ppassword
mysql>alter user 'root'@'locahost' identified by 'admin123‘;
mysql>flush privileges;
mysql>exit;
10、开启远程
10.1登录mysql
mysql -uroot -ppassword
10.2创建用户
create user 'root'@'%' identified by 'admin123';
10.3设置权限
grant all privileges on *.* to 'root'@'%';
flush privileges;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)