首页 > linux, mysql > centos8编译安装mysql5.7.29

centos8编译安装mysql5.7.29

2020年9月24日 发表评论 阅读评论

本文完美在centos7或8下验证mysql5.7的安装,解决了/var/run文件不能创建的问题,并且创建了systemd文件来管理mysql启动和关闭。

mysql安装前的准备:

编译环境依赖

下载安装包

安装整体流程

正式安装MySQL

1、安装cmake

2、安装MySQL

 

注意:可以使用-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost参数在线安装boost软件包,需要服务器联网,容易下载失败。

看到如下输出表示cmake成功

如果编译出错, 重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。

遇到c++: fatal error: Killed signal terminated program cc1plus错误的原因是 ,虚拟机内存太小,可以扩大swap,参考扩大swap空间

3、mysql安装后配置

chown -R mysql:mysql /usr/local/mysql

#进入MySQL安装目录

cd /usr/local/mysql

#生成mysql系统数据库

./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql

--initialize表示默认生成密码, --initialize-insecure 表示不生成密码, 密码为空。

屏幕输入一串记录,冒号后面的是root密码需要记住,[Note] A temporary password is generated for root@localhost: <9iE,vwDae8h

 

把Mysql加入开机启动

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /etc/systemd/system/

cp /usr/local/mysql/usr/lib/tmpfiles.d/mysql.conf /etc/tmpfiles.d/
systemctl enable mysqld

#启动mysql
systemctl start mysqld

vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行

:wq! #保存退出

source /etc/profile #使配置立刻生效

下面这两行把msyql的库文件链接到系统默认的位置,编译类似PHP等软件时可以不用指定mysql的库文件地址。

#修改Mysql密码,输入之前生成的密<9iE,vwDae8h回车,根据提示操作。

mysql_secure_installation

Press y|Y for Yes, any other key for No: y #是否安装密码安全插件?选择y

There are three levels of password validation policy: #有以下几种密码强度选择

LOW Length >= 8

MEDIUM Length >= 8, numeric, mixed case, and special characters

STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 #选择0,只要8位数字即可,选1要有大写,小写,特殊字符等

#卸载密码强度插件

UNINSTALL PLUGIN validate_password ;

 

扩展信息:

查看my.cnf配置文件路径

/usr/local/mysql/bin/mysql --verbose --help|grep my.cnf

mysql忘记密码如何修改?

修改/etc/my.cnf增加skip-grant-tables

vi /etc/my.cnf,添加如下内容

重启mysql服务

systemctl restart mysqld

直接命令打mysql,然后回车:

修改root密码为abc123,。

最后别忘了去掉/etc/my.cnf中增加的skip-grant-tables。重启恢复使用密码登陆。

mysql日志文件路径,登陆mysql执行

SHOW VARIABLES LIKE 'general_log_file';日志文件路径
SHOW VARIABLES LIKE 'log_error';错误日志文件路径
SHOW VARIABLES LIKE 'slow_query_log_file';慢查询日志文件路径

可能遇到的问题:

  • 问题一

解决办法:cmake时增加参数

  • 问题二

解决办法:

编辑配置文件,增加explicit_defaults_for_timestamp=true。

  • 问题三

解决办法

查找 mysql.sock 文件,在目录/var/lib/mysql/下找到。

查找配置文件my.cnf

其中,socket参数配置的路径是/var/lib/mysql/mysql.sock,解决办法是建立软链接/tmp/mysql.sock

  • 问题四

解决办法:可能磁盘空间满了,清理磁盘后重新make

问题五

或者

 

解决办法:网上很多是centos8没办法创建/var/run 目录,有人提供修改路径的方式,这种方法治标不治本。实际上centos提供了tmpfiles.d来自动创建需要的文件夹

cp /usr/local/mysql/usr/lib/tmpfiles.d/mysql.conf /etc/tmpfiles.d/

 

参考:https://developpaper.com/centos-7-source-code-compilation-and-installation-of-mysql-5-7/

 

分类: linux, mysql 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.