千家信息网

MySQL5.7.18 for Linux7.2 源码安装

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,源码安装MySQL比较麻烦,需要安装依赖包,然后进行编译,时间较长,建议安装二进制的MySQL,时间比较快;用到的软件包:mysql-5.7.18.tar.gzboost_1_59_0.tar.gz1
千家信息网最后更新 2025年11月10日MySQL5.7.18 for Linux7.2 源码安装

源码安装MySQL比较麻烦,需要安装依赖包,然后进行编译,时间较长,建议安装二进制的MySQL,时间比较快;


用到的软件包:

mysql-5.7.18.tar.gz

boost_1_59_0.tar.gz


1、安装依赖包

yum -y install gcc* gcc-c++ ncurses* ncurses-devel* cmake* bison* libgcrypt* perl*


2、创建MySQL用户:

[root@localhost ~]# mkdir -p /mysql/data

[root@localhost ~]# mkdir -p /mysql/mysql5718

[root@localhost ~]# chown -R mysql.mysql /mysql/


3、调整系统参数

[root@localhost ~]# vim /etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535


[root@localhost ~]# vi /etc/security/limits.d/20-nproc.conf

* soft nproc 65535


[root@localhost ~]# vi /etc/profile

ulimit -u 65535

ulimit -n 65535


4、下载并解压软件

[root@localhost ~]# tar zxvf mysql-5.7.18.tar.gz -C /usr/src/

[root@localhost ~]# tar zxvf boost_1_59_0.tar.gz -C /mysql/

[root@localhost ~]# chown -R mysql.mysql /mysql/

[root@localhost ~]# chmod -R 755 /mysql/

[root@localhost ~]# chown -R mysql.mysql /usr/src/mysql-5.7.18/


5、开始编译安装MySQL5.7.18

[root@localhost ~]# su - mysql


[mysql@localhost ~]$ cd /usr/src/mysql-5.7.18/

[mysql@localhost mysql-5.7.18]$cmake . -DCMAKE_INSTALL_PREFIX=/mysql/mysql5718 \

-DMYSQL_DATADIR=/mysql/data \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/mysql/boost_1_59_0


[mysql@localhost mysql-5.7.18]$ make -j 4 (并行4个进程同时进行编译)

[mysql@localhost mysql-5.7.18]$ make install


6、初始化数据库:

[mysql@localhost ~]$ /mysql/mysql5718/bin/mysqld --initialize --user=mysql --basedir=/mysql/mysql5718/ --datadir=/mysql/data/


---注意,在初始化数据库会生成数据库的默认密码,这个密码要记住,一会登录数据库要用


7、编辑my.cnf配置文件,启动数据库

[mysql@localhost ~]$ vim my.cnf (该配置文件仅供参考)

[client]

socket = /mysql/data/mysql.sock

default_character_set = utf8


[mysql]

socket=/mysql/data/mysql.sock

[mysqld]

server_id = 1607

port = 3306

basedir = /mysql/mysql5718/

datadir = /mysql/data/

socket = /mysql/data/mysql.sock

pid_file = /mysql/data/mysql.pid

log_error = /mysql/data/mysql_error.log

log_bin = /mysql/data/mysql_bin

relay_log = /mysql/data/relay_bin

character_set_server = utf8

collation_server = utf8_general_ci

innodb_buffer_pool_size = 8G

innodb_buffer_pool_instances = 8

innodb_log_file_size = 1G

innodb_log_files_in_group = 3

innodb_log_buffer_size = 24M

innodb_flush_log_at_trx_commit = 1

innodb_file_per_table = 1

innodb_flush_method = O_DIRECT

innodb_io_capacity = 200

innodb_io_capacity_max = 600

innodb_thread_concurrency = 0

innodb_autoinc_lock_mode = 2

innodb_lock_wait_timeout = 60

innodb_read_io_threads = 4

innodb_write_io_threads = 4

innodb_max_dirty_pages_pct = 80

innodb_autoextend_increment = 512

innodb_checksum_algorithm = NONE

innodb_doublewrite = 0

innodb_use_native_aio = 1

innodb_open_files = 8192

sync_binlog = 1

sync_relay_log = 1

relay_log_info_repository = TABLE

master_info_repository = TABLE

expire_logs_days = 10

binlog_format = ROW

transaction-isolation = READ-COMMITTED

concurrent_insert = 2

skip_slave_start = TRUE

back_log = 2000

thread_stack = 256k

thread_cache_size = 256

key_buffer_size = 256M

tmp_table_size = 64M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 2M

join_buffer_size = 2M

query_cache_size = 0

query_cache_type = 0

max_heap_table_size = 64M

binlog_cache_size = 2M

table_open_cache = 8192

max_allowed_packet = 64M

bulk_insert_buffer_size = 64M

max_connect_errors = 100000

max_connections = 500

connect_timeout = 300

wait_timeout = 86400

interactive_timeout = 86400

lower_case_table_names = 1

open_files_limit = 20480

skip_name_resolve

skip_external_locking

explicit_defaults_for_timestamp = TRUE

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


[mysql@localhost ~]$ /mysql/mysql5718/bin/mysqld_safe --defaults-file=/mysql/data/my.cnf --user=mysql &


8、进入数据库检查:

[mysql@localhost ~]$ /mysql/mysql5718/bin/mysql -u root -p --socket=/mysql/data/mysql.sock

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.7.18-log MySQL Community Server (GPL)


Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> set password='123456'; (因为刚才使用的密码是个默认的登录密码,所以我们要修改)

mysql> flush privileges;


然后重新登录数据库,进行检查:

[mysql@localhost ~]$ /mysql/mysql5718/bin/mysql -u root -p --socket=/mysql/data/mysql.sock

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> \s

--------------

/mysql/mysql5718/bin/mysql Ver 14.14 Distrib 5.7.18, for linux-glibc2.5 (x86_64) using EditLine wrapper


Connection id: 7

Current database:

Current user: root@localhost

SSL: Not in use

Current pager: stdout

Using outfile: ''

Using delimiter: ;

Server version: 5.7.18-log MySQL Community Server (GPL)

Protocol version: 10

Connection: Localhost via UNIX socket

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

UNIX socket: /mysql/data/mysql.sock

Uptime: 25 min 16 sec


Threads: 1 Questions: 19 Slow queries: 0 Opens: 110 Flush tables: 1 Open tables: 103 Queries per second avg: 0.012

--------------


mysql>


0