centos7 怎么编译安装mysql

文 / @WordPress主题

CentOS 7怎么编译安装MySQL

20230608175230562

在CentOS 7下源码编译安装MySQL 5.7可能会让一些人感到困惑,但是随着学习的需要,如果不能避免就必须学会。下面是在Dell G3电脑上的实践经验,供大家参考。

环境配置

首先,在CentOS 7下安装必要的依赖包:

yum install -y gcc gcc-c++ cmake ncurses ncurses-devel bison

然后,登录MySQL官方网站下载MySQL 5.7版的源码包,这个版本需要boost库的支持,所以选择官网的源码包中含boost的版本:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz

准备工作

接下来,先添加一个新用户mysql,用于运行MySQL服务:

useradd -s /sbin/nologin mysql

然后,创建MySQL数据目录,并将其所有者设为mysql:

mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql

解压MySQL源码包,并将其放在/usr/local/mysql目录下:

tar -zxvf mysql-boost-5.7.25.tar.gz -C /usr/local/mysql/

进入目录/usr/local/mysql/,进行源码编译安装:

cd /usr/local/mysql/
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make && make install

进行配置

安装完成后,在/etc目录下新建my.cnf文件,并将以下内容复制到my.cnf中,用于MySQL服务的配置:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
socket=/tmp/mysql.sock
user=mysql

basedir=/usr/local/mysql
datadir=/data/mysql/data
pid-file=/data/mysql/mysql.pid

log_error=/data/mysql/mysql-error.log
slow_query_log=1
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log

skip-external-locking
key_buffer_size=32M
max_allowed_packet=1024M
table_open_cache=128
sort_buffer_size=768K
net_buffer_length=8K
read_buffer_size=768K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
thread_cache_size=16
query_cache_size=16M
tmp_table_size=32M
performance_schema_max_table_instances=1000

explicit_defaults_for_timestamp=true
max_connections=500
max_connect_errors=100
open_files_limit=65535

log_bin=mysql-bin
binlog_format=mixed
server_id=232
expire_logs_days=10
early-plugin-load=""

default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_buffer_pool_size=128M
innodb_log_file_size=32M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size=32M
sort_buffer_size=768K
read_buffer=2M
write_buffer=2M
复制代码

其中,有些内容需要根据实际情况进行修改,比如datadir目录应该改为自己指定的数据目录路径。

接下来,将安装目录和数据库数据目录的所有者和组都设置为mysql:

chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
复制代码

初始化MySQL

初始化MySQL数据库,是一个非常容易出现问题的步骤。执行如下命令:

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
复制代码

其中,需要加上这些参数,而且在执行这一步操作前,/data/mysql/data这个目录必须是空的,并且指定的basedir和datadir目录一定要和/etc/my.cnf配置文件一致,否则会出现很多意料之外的问题。

启动MySQL服务

拷贝一个可执行的服务配置文件:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
复制代码

启动MySQL服务:

service mysqld start
复制代码

这也是非常容易出现问题的地方,如果碰到启动问题,可以查看MySQL的错误日志,一般都能解决问题。

测试连接

最后,进行简单的测试,看看能否连接到MySQL:

/usr/local/mysql/bin/mysql -h localhost -u root -p
复制代码

如果不需要密码,可以直接回车即可。

设置环境变量和开机自启动

将MySQL的可执行文件路径添加到环境变量中:

echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
复制代码

设置开机自启动:

systemctl enable mysqld
复制代码

总结

以上就是在CentOS 7下编译安装MySQL 5.7的全部过程,虽然部分步骤容易出错,但只要认真对待就不算难。如果你需要掌握更多关于MySQL的知识,可以参考MySQL的官方文档或学习在线课程。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。