centos7 怎么编译安装mysql
CentOS 7怎么编译安装MySQL
在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的官方文档或学习在线课程。
-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么查询临时表 2023-05-14 07:00:02