Mysql8编译安装
centOs 编译运行mysql
MySql8.0.20编译安装
前置要求:
更新cmake
cmake要求3.0及以上
1 | yum -y remove cmake |
更新gcc
gcc 要求5.4及以上
1 | sudo yum install centos-release-scl |
更新完成后,我们需要改动/usr/bin/下的文件
1 | 先删除这个文件夹下的 cc 和 c++两个文件 |
boost文件
boost文件我们可以直接下载,也可以在命令行直接下载。这里我们直接在后面命令行中下载即可
安装Mysql
- 解压mysql文件后,进入文件目录
为了避免每次失败后,得删除整个mysql文件重新解压,我们建一个build文件夹
1 | mkdir build |
以下是百度到的更多的配置,记录一下:
1 | sudo cmake .. \ |
DDEFAULT_CHARSET:指定默认字符集为utf8mb4,因为历史遗留问题,MySQL中的utf8不是真正的utf8,而是阉割版的,最长只有三个字节,当遇到四个字节的utf8编码时,会导致存储异常。从5.5.3开始,使用utf8mb4实现完整的utf8。DDEFAULT_COLLATION:排序规则,默认为utf8mb4_0900_ai_ci,属于utf8mb4_unicode_ci的一种。0900指的是Unicode校对算法版本,ai是指口音不敏感(as表示敏感),ci指不区分大小写(cs表示区分)。utf8mb4_unicode_ci表示基于标准的的Unicode来排序和比较,能够在各种语言之间精确排序,而utf8mb4_general_ci遇到某些特殊的字符集时排序结果可能不一致,准确性较差,但是性能较好,比较和排序时候更快。DENABLED_LOCAL_INFILE表示能否使用load data命令。DWITH_SSL表示使用系统的SSL库,若不使用系统的请自定义路径。DCMAKE_INSTALL_PREFIX:MySQL安装目录。DMYSQL_DATADIR:MySQL数据目录,初始时为空。DMYSQL_TCP_PORT:端口,默认3306。DDOWNLOAD_BOOST:取值0或1,是否下载Boost库。DWITH_BOOST:若不下载Boost库的话,是本地Boost库的位置,若下载Boost表示下载位置
- 然后在mysql根目录下就可以
make了 - 然后
make install
配置mysql
这才是真正的难处啊!!!
摸爬滚打,一个坑一个坑菜,试出来:
```shell
添加用户组
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql1
2
3
4
5
2. ```shell
# 初始化mysql
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data```shell
echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile1
2
3
4
5
6
7
8
9
10
11
12
13
14
4. ```shell
# 配置my.cnf文件
[mysqld]
skip-grant-tables
# 跳过密码
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
user = mysql
symbolic-links=0
[mysqld_safe]
log-error = /usr/local/mysql/log-error/mariadb.log
pid-file = /usr/local/mysql/mariadb.pid```
创建日志授予权限
mkdir -p /usr/local/mysql/log-error/
touch /usr/local/mysql/log-error/mariadb.log
chown -R mysql:mysql /usr/local/mysql/log-error/mariadb.log1
2
3
4
5
6
6.
```shell
# 启动服务
/usr/local/mysql/support-files/mysql.server start```shell
bin下登录mysql
./mysql -u root
1
2
3
4
5
6
7
8
9
10
11
这里会报一个错误,

这里需要建立一个软链接
查看`/etc/my.cnf`文件下的`socket`路径,建立它和`tmp/mysql.sock`的软链接
```shell
ln -s /usr/local/mysql/mysql.sock tmp/mysql.sock重新启动
1
./mysql restart
太难了!!启动六个小时没启动成功。最后成功了
启动成功
