linux 从源码编译安装mysql-sever

下载依赖

配置yum源(此步请自行查找资料),安装依赖包

yum install -y cmake g++ bison openssl-devel libaio ncurses-devel perl-Data-Dumper net-tools libtirpc-devel rpcgen libudev-devel

 

获取源码

拉取源码

git install https://github.com/mysql/mysql-server

如果没配代理,也可以手动下载后上传

 

编译

进入目录中

cd mysql-sever

 

配置

mkdir build && cd build

cmake ..

 

如果报错找不到boost

可以按照它给的链接下载devel-boost.tar.bz2(比如https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2),

在cmake命令中加入参数“-DWITH_BOOST=boost_1_77_0.tar.bz2存放的路径”

 

总结:

mkdir build && cd build
wget https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2 -P .. cmake ..
-DWITH_BOOST=../boost_1_77_0.tar.bz2

 

 

编译(指定8核编译)

make -j 8

 

 

安装

如果要指定安装目录,用DESTDIR=/opt/mysql_server参数,否则默认安装在/usr/local/mysql目录下

make install

 

 

后续配置

创建软链接到/usr/bin

# mysql 默认安装到/usr/local
ln
-s /usr/local/mysql/bin/mysql /usr/bin/mysql ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin

 

创建mysql用户

# 检查用户和组是否存在
grep mysql /etc/group    # 检查用户组
grep mysql /etc/passwd   # 检查用户

# 创建用户组(若不存在)
sudo groupadd mysql

# 创建用户并加入用户组(若不存在)
sudo useradd -r -g mysql -s /bin/false mysql

# 修改部分文件属主
chown -R mysql:mysql /usr/local/mysql/

 

创建配置文件

 

cat > /etc/my.cnf << EOF
[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data socket = /usr/local/mysql/mysql.sock port = 3306 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [client] socket = /usr/local/mysql/mysql.sock
EOF

chown mysql:mysql /etc/my.cnf # 修改属主

 

创建服务

cat > /etc/systemd/system/mysqld.service << EOF
[Unit] Description=MySQL Server Documentation=man:mysqld(8) After=network.target After=syslog.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 [Install] WantedBy=multi-user.target
EOF

 

启动服务

for i in {1..3}; do if systemctl status mysqld; then
    break
    else
    systemctl restart mysqld
    sleep 5
fi
done

 

 

产生数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql

上面的命令回显会包含初始密码,需要保存。

 

修改密码

首先登录

mysql -u root -p

输入初始密码

 

登录成功后,输入命令修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password(新密码)';

 

posted @ 2025-06-05 15:10  小鱼圆又圆  阅读(15)  评论(0)    收藏  举报