需要准备的条件
cmakegccboost1.59.0
这里贴出我对应的依赖版本(由于图片加载太慢了)
1
2camke version 3.25.0-rcl
gcc (GCC) 12.2.0mysql版本对应的依赖boost版本必须要匹配,编译过程如果有报错信息boost要求对应的版本这里选择的是
mysql5.7.17,mysql源码链接boost对应的版本库,选择需要的版本对应download就行,boost版本下载对应好需要的依赖就行,就开始解压过程,以
mysql源码为例子1
2
3cd /home/soft/
wget https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz
tar xzfv mysql-5.7.17.tar.gz这个时候需要给
mysql一些文件权限,不然mysql如何操作文件呢?1
2
3cd mysql-server-mysql-5.7.17/
groupadd mysql
useradd -r -g mysql -s /bin/false mysql配置
mysql预编译参数创建
mysql数据存储目录1
mkdir -p /usr/local/mysql/data
预编译参数(根据自身依赖的情况,去选择文件路径)
1
2
3
4
5
6
7
8cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/data/soft/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all编译并安装
1
2make -j `grep processor /proc/cpuinfo | wc -l`
make install编译完成后
1
2
3
4
5
6
7
8cd /usr/local/mysql
chown -R mysql:mysql .
注意:MySQL 5.7.6之前的版本执行这个脚本初始化系统数据库
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
chown -R root .
chown -R mysql data
chmod -R 777 data新建配置文件
1
vim /etc/my.cnf
新建日志文件
1
2
3
4
5
6
7
8
9
10mkdir -p /usr/local/mysql/log
cd /usr/local/mysql/log
touch mysql_error.log
touch mysql_slow.log
cd ..
chown -R mysql log
chmod -R 777 log配置文件内容
innodb_buffer_pool_size注意下 看自己内存有多少,再分配,以防内存不够报错。skip-grant-tables这里跳过mysql验证的配置,方便我们到时候改密码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70[client]
port=3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-external-locking
skip-name-resolve
skip-grant-tables
federated
explicit_defaults_for_timestamp = 1
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
tmpdir=/usr/local/mysql/temp
# server_id = .....
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/log/mysql_error.log
pid-file=/usr/local/mysql/mysql.pid
open_files_limit=10240
back_log=600
max_connections=500
max_connect_errors=6000
wait_timeout=605800
#open_tables=600
#table_cache = 650
#opened_tables = 630
max_allowed_packet=32M
sort_buffer_size=4M
join_buffer_size=4M
thread_cache_size=300
query_cache_type=1
query_cache_size=256M
query_cache_limit=2M
query_cache_min_res_unit=16k
tmp_table_size=256M
max_heap_table_size=256M
key_buffer_size=256M
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=64M
lower_case_table_names=1
default-storage-engine=INNODB
innodb_buffer_pool_size=1G
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT
#####################
#thread_concurrency=32
long_query_time=2
slow-query-log=on
slow-query-log-file=/usr/local/mysql/log/mysql_slow.log
[mysqldump]
quick
max_allowed_packet=32M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid配置
mysql服务1
2
3cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动接下来我们就可以使用
systemctl start mysqld启动服务了,但是每个人安装不一样,总会有不同的报错,这个时候看下tail -f /var/log/mysqld.log看下对应报啥错,有时候大多是忘记设计权限了1
2
3
4
5systemctl restart mysqld -- 重启mysql
systemctl stop mysqld -- 停止mysql服务
systemctl status mysqld -- 查看mysql服务状态
systemctl daemon-reload -- 如果重新设置了服务,可以使用这个重载一下配置一下可以直接使用
mysql的命令吧1
2
3
4vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile接下来就是更改密码了
因为我们配置了
skip-grant-tables,所以第一次认证,直接使用这样的1
2mysql -uroot -p
回车设置新密码
1
2
3
4use mysql;
update user set authentication_string=password('新密码') where user='root';
flush privileges;注意把
skip-grant-tables注释掉,重新启动mysql服务重新编译记得清下编译的时候的缓存文件
1
2
3cd /data/soft/mysql
rm -f CMakeCache.txt
make clean
mysql安装完毕,接下来查看下mysql进程1
ps -aux | grep mysql
一些报错产生的原因,可以参考这个博客,报错原因
-
Next Post游戏开发