环境:mysql(5.7.17)+boost(1_59_0)
关闭防火墙(firewalld):
systemctl stop firewalld
systemctl enable firewalld
关闭SeLinux:
vim /etc/selinux/config
SELINUX=disable
(重启生效,reboot)
getenforce
MySQL安装:
安装依赖包:
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison epel*
mysql源码编译时要用到boost::
yum -y install wget
cd /usr/local/src/
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
检查是否存在mysql,存在则删除:

官方下载mysql5.7.17源码包:

解压文件:
tar zxvf mysql-5.7.17.tar.gz
新建MySQL用户和用户组,创建/data/mysql 目录存放mysql数据:
groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
mkdir -pv /data/mysql
cd mysql-5.7.17/
预编译及编译安装:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock\
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BOOST=/usr/local/boost \
-DMYSQL_USER=mysql \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
注:
DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径
DMYSQL_DATADIR=/data/mysql:数据文件存放位置
DSYSCONFDIR=/etc:my.cnf路径
DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎
DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎
DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径
DMYSQL_TCP_PORT=3306:端口
DENABLED_LOCAL_INFILE=1:允许从本地导入数据
DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区
DEXTRA_CHARSETS=all:安装所有的字符集
DDEFAULT_CHARSET=utf8:默认字符
DWITH_EMBEDDED_SERVER=1:嵌入式服务器
make && make install
设置启动脚本,开机自启动:
chown -R mysql:mysql /usr/local/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/* /usr/local/bin/
chkconfig --add mysqld
chkconfig mysqld on
拷贝my.cnf至/etc/目录下,并初始化数据库:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
启动服务:
systemctl restart mysqld
查看状态:
ps -ef|grep mysql
root管理员修改密码:
mysql -uroot -p
mysql> set password = password("root@123");
mysql> alter user 'root'@'localhost' password expire never;
mysql> FLUSH PRIVILEGES;
忘记密码:
#
systemctl stop mysqld
#
vim /etc/my.cnf
添加一行:skip-grant-tables
#
systemctl start mysqld
登陆数据库:
mysql 回车
回车
use mysql;
update mysql.user set authentication_string=password('root123') where user = 'root';
flush privileges;
#
#
#
#
mysql -uroot -p
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了