1.卸载系统自带boots库
1 [root@localhost] #yum -y remove boost-*
2.卸载系统自带的mysql and mariadb
1 [root@localhost] #yum -y remove mysql
2 rpm -qa|grep mariadb ###centos7 自带部分数据库信息
3 yum remove mariadb-libs -y ###移除自带数据库
3.安装必要的资源依赖包
1 [root@localhost] #yum install cmake,make,gcc,gcc-c++,bison, ncurses,ncurses-devel -y
4.安装boost 库1.59和mysql包
[root@localhost] wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@localhost] wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
5.对boots包和mysql包进行解压到对应的目录下
1 [root@localhost] tar zxf boost_1_59_0.tar.gz -C /usr/local/
2 [root@localhost] tar zxf mysql-5.7.13.tar.gz -C /opt/
6.解压完成后创建用户及其相关目录
1 groupadd mysql #mysql用户组
2 useradd -r -g mysql -s /sbin/nologin mysql #添加mysql用户
3 mkdir /data/mysql #创建数据目录
4 chown -R mysql:mysql /data/mysql/ #修改数据目录为mysql
5 chown -R mysql:mysql /home/mysql/
7. 配置mysql预编译参数
1 [root@localhost] # cd mysql-5.7.13
2 [root@localhostmysql-5.7.13]# cmake -DCMAKE_INSTALL_PREFIX=/home/mysql
3 -DMYSQL_DATADIR=/home/mysql/ #数据存放目录
4 -DDEFAULT_CHARSET=utf8
5 -DDEFAULT_COLLATION=utf8_general_ci
6 -DMYSQL_TCP_PORT=3306
7 -DMYSQL_USER=mysql
8 -DWITH_INNOBASE_STORAGE_ENGINE=1
9 -DWITH_MYISAM_STORAGE_ENGINE=1
10 -DWITH_ARCHIVE_STORAGE_ENGINE=1
11 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
12 -DWITH_MEMPRY_STORAGE_ENGINE=1
13 -DDOWNLOAD_BOOST=1
14 -DWITH_BOOST=/usr/local/boost #boost源码路径
15
16
17 #配置解释
18 官方 工具选项解析
19
20 -DCMAKE_INSTALL_PREFIX=/usr/local/es/mysql57/ #安装目录
21 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 服务器侦听套接字连接的Unix套接字文件路径,默认/tmp/mysql.sock。 这个值可以在服务器启动时用–socket选项来设置。所以这条可以去掉
22 -DMYSQL_DATADIR=/data/mysql MySQL数据目录的位置。 该值可以在服务器启动时使用–datadir选项进行设置。
23 -DSYSCONFDIR=/etc 默认的my.cnf选项文件目录。 此位置不能在服务器启动时设置,但可以使用–defaults-file = file_name选项使用给定的选项文件启动服务器,其中file_name是该文件的完整路径名。
24 -DMYSQL_USER=mysql 指定用户名
25 -DMYSQL_TCP_PORT=3306 服务器侦听TCP / IP连接的端口号。默认值是3306。 该值可以在服务器启动时使用–port选项进行设置。
26 -DWITH_XTRADB_STORAGE_ENGINE=1 储存引擎 XTRADB
27 -DWITH_INNOBASE_STORAGE_ENGINE=1 储存引擎 INNOBASE
28 -DWITH_PARTITION_STORAGE_ENGINE=1 储存引擎 PARTITION
29 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 储存引擎 BLACKHOLE
30 -DWITH_MYISAM_STORAGE_ENGINE=1 储存引擎 MYISAM
31 -DWITH_READLINE=1
32 -DENABLED_LOCAL_INFILE=1 该选项控制MySQL客户端库的已编译默认LOCAL功能???啥意思
33 -DWITH_EXTRA_CHARSETS=1 这个为什么是1,文档不是name ,字符串吗? 要包含哪些额外的字符集: all complex none
34 -DDEFAULT_CHARSET=utf8 服务器字符集。默认情况下,MySQL使用latin1(cp1252西欧)字符集。 该值可以在服务器启动时使用–character_set_server选项进行设置。
35 -DDEFAULT_COLLATION=utf8_general_ci 服务器整理。默认情况下,MySQL使用latin1_swedish_ci。该值可以在服务器启动时使用–character_set_server选项进行设置。
36 -DEXTRA_CHARSETS=all
37 -DWITH_BIG_TABLES=1
38 -DWITH_DEBUG=0 是否包含调试支持。
39 -DWITH_BOOST=/usr/local/boost #把定boost 目录
8.编译并安装
1 [root@localhostmysql-5.7.13]# make -j (-j参数是加快编译速度)
2 [root@localhostmysql-5.7.13]# make install
9.配置环境变量
1 cd /home/mysql/
2 cp support-files/mysql.server /etc/init.d/mysqld //复制启动项
3
4 echo 'export PATH=$PATH:/opt/mysql/bin' >>/etc/profile ###设置环境变量
5 source /etc/profile ###立即执行
6 mysql -V
7 [root@shell /home/mysql20:46:55]# mysql -V
8 mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper
10.初始化系统数据库
mysqld --initialize-insecure --user=mysql --basedir=/homw/mysql --datadir=/data/mysql
可能出现报错 说/data目录有数据
执行
rm -rf /data/mysql/*
再次执行初始化命令
11.配置文件及参数优化
1 [root@localhostmysql-5.7.13]# cp /home/mysql/support-files/my-default.cnf /etc/my.cof //复制配置文件
2 #参考如下配置档
3 [root@shell ~20:55:34]# cat /etc/my.cof |grep -Ev "#^|^$"
4 [mysqld]
5 port=3306
6 user=mysql
7 basedir=/home/mysql
8 datadir=/data/mysql
9 socket=/tmp/mysql.sock
10 [mysql]
11 socket=/tmp/mysql.sock
12
13 # vim /etc/my.conf 参考
14 [client]
15 port = 3306
16 socket = /tmp/mysql.sock
17 [mysqld]
18 port = 3306
19 socket = /tmp/mysql.sock
20 user = mysql
21 basedir = /usr/local/mysql
22 datadir = /data/mysql/data
23 pid-file = /data/mysql/mysql.pid
24
25 log_error = /data/mysql/mysql-error.log
26 slow_query_log = 1
27 long_query_time = 1
28 slow_query_log_file = /data/mysql/mysql-slow.log
29
30
31 skip-external-locking
32 key_buffer_size = 32M
33 max_allowed_packet = 1024M
34 table_open_cache = 128
35 sort_buffer_size = 768K
36 net_buffer_length = 8K
37 read_buffer_size = 768K
38 read_rnd_buffer_size = 512K
39 myisam_sort_buffer_size = 8M
40 thread_cache_size = 16
41 query_cache_size = 16M
42 tmp_table_size = 32M
43 performance_schema_max_table_instances = 1000
44
45 explicit_defaults_for_timestamp = true
46 #skip-networking
47 max_connections = 500
48 max_connect_errors = 100
49 open_files_limit = 65535
50
51 log_bin=mysql-bin
52 binlog_format=mixed
53 server_id = 232
54 expire_logs_days = 10
55 early-plugin-load = ""
56
57 default_storage_engine = InnoDB
58 innodb_file_per_table = 1
59 innodb_buffer_pool_size = 128M
60 innodb_log_file_size = 32M
61 innodb_log_buffer_size = 8M
62 innodb_flush_log_at_trx_commit = 1
63 innodb_lock_wait_timeout = 50
64
65 [mysqldump]
66 quick
67 max_allowed_packet = 16M
68
69 [mysql]
70 no-auto-rehash
71
72 [myisamchk]
73 key_buffer_size = 32M
74 sort_buffer_size = 768K
75 read_buffer = 2M
76 write_buffer = 2M
12.修改mysql密码
1 #初始化出现报错:
2 2021-10-16T12:25:04.276507Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root
3
4 #处理方法:
5 修改密码:
6 mysqld_safe --skip-grant-tables --user=mysql 执行后会夯住,另开起一个窗口,输入mysql+回车即可登录Mysql
7
8 mysql>alter user 'root'@'localhost' identified by '123456';
9 Query OK, 0 rows affected (0.00 sec)
10 flush privileges;
11 mysql> exit;
13.安装成功 及启动
1 cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld //复制启动项
2 [root@localhost mysql]# service mysqld start //启动mysql
3 /etc/init.d/mysqld start 启动Mysql
4 netstat -lntup |grep 3306 查看mysql 是否启动