centos7.2编译安装mysql5.7.21报错解决

编译安装mysql

安装环境
安装包
[[email protected] ~]# ls /root/tools/
app.tar.gz mysql-5.7.21 mysql-5.7.21.tar.gz nginx-1.15.0.tar.gz nginx_conf.tar.gz
操作系统
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
内存
[[email protected] ~]# free -m
total used free shared buff/cache available
Mem: 7296 456 230 7 6609 6553
Swap: 4095 1 4094
磁盘
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 36G 13G 22G 37% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.7G 0 3.7G 0% /dev/shm
tmpfs 3.7G 8.5M 3.7G 1% /run
tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup
tmpfs 730M 0 730M 0% /run/user/0

安装过程
习惯把服务安装到统一路径下
mkdir /app

安装依赖
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

添加mysql用户
useradd -M -s /sbin/nologin mysql

高版本mysql需要boots库的安装才可以正常运行
在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
进入这个新创建的文件夹然后下载boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
解压即可
tar -xvzf boost_1_59_0.tar.gz

编译参数
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.7.21 -DMYSQL_DATADIR=/app/mysql-5.7.21/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost

make && make install

初始化mysql

cp /root/tools/support-files/mysql.server /etc/init.d/mysqld
chown –R mysql.mysql /app/mysql_5.7.21/data
chmod +x /etc/init.d/mysqld
chmod 1777 /tmp
echo ‘export PATH=/app/mysql-5.7.21/bin:$PATH’>>/etc/profile
source /etc/profile
/app/mysql/bin/mysqld --initialize --user=mysql --basedir=/app/mysql-5.7.21 --datadir=/app/mysql-5.7.21/data
注意:初始化完成会生成root密码,复制,方便登录到mysql重置密码

初始化完成之后报WARNING
2018-06-17T10:53:58.352241Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

解决:
在/etc/my.cnf 文件中的[mysqld]下添加一行explicit_defaults_for_timestamp = TRUE就可以了

开始启动mysql
/etc/init.d/mysqld start

但是却报错了,
竟然报错了
报错了
[[email protected] support-files]# /etc/init.d/mysqld start
Starting MySQL.2018-06-17T11:08:05.949747Z mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log‘, however file don‘t exists. Create writable for user ‘mysql‘.
ERROR! The server quit without updating PID file (/var/lib/mysql/ecs-adfa.novalocal.pid).

也看了几个网友的文章,有的说是删除掉my.cnf即可启动,但是呢,生产环境中需要添加或者修改mysql的配置文件,删掉定然是行不通的,自己也就没试可行否。

自己的解决办法:
手动创建log文件并授权给mysql
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql.mysql /var/log/mariadb/mariadb.log

再次启动mysql,又报错(尝试了多次,中间缺少部分报错信息)
MySql server startup error ‘The server quit without updating PID file ‘

解决
修改my.cnf中默认[mysqld]的datadir和sock的路径
改为
[mysqld]
datadir=/app/mysql-5.7.21/data
socket=/tmp/mysql.sock

再启动mysql
[[email protected] support-files]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

但是,在mysql -uroot -p登录mysql的时候,又报错
说是找不到sock的(报错当时没记录下来)

解决:
添加sock的路径
修改/etc/my.cnf.d/mysql-clients.cnf
[mysql]
socket=/tmp/mysql.sock

至此,可以登录,记得登录之后修改密码,即使自己不修改,mysql也会提醒你修改的。

就先这样大概记录下吧,以后遇到在修改。

原文地址:http://blog.51cto.com/6010131/2130194

时间: 2024-10-10 07:21:52

centos7.2编译安装mysql5.7.21报错解决的相关文章

Centos7系统编译安装Mysql5.7.21

环境说明 : centos7.4 64位虚拟机 mysql5.7.21.tar.gz 编译安装需要虚拟机2G内存 [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 安装步骤如下: 1.安装依赖包: yum -y install gcc gcc-c++

源码安装mysql5.6x启动报错:[ERROR] Can't find messagefile '/data/mysqldata/3306/english/errmsg.sys'

170502 10:43:40 mysqld_safe Starting mysqld daemon with databases from /data/mysqldata/3306/data 2017-05-02 10:43:40 0 [Warning] The syntax '--language/-l' is deprecated and will be removed in a future release. Please use '--lc-messages-dir' instead.

编译安装PHP使用session_start()时报错&解决办法

系统上的PHP是编译安装的,在session_start()的时候报错! A 错误信息: Warning: session_start(): open(/var/lib/php/session/sess_qavhhacl7lrdbggauasf1qdlo5, O_RDWR) failed: No such file or directory (2) in /www/tool/classes/service/User.php on line 75 1Warning: Unknown: open(/

centos7.x编译安装mysql5.7.16

对于5.7以后的mysql编译安装,我遇到了不少坑,各种问题.mysql5.7.18编译openssl会出错,环境也神奇地报其他问题,即使我安装成功了,却无法以安装模式登陆mysql修改密码. 最后使用前几个版本就解决问题了.我使用的是5.7.16. #系统安装条件 1> cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数.如:安装目录.数据存放目录.字符编码.排序规则等.安装最新版本即可. 2> make3.75 mysql源代码是由C和C++语言编写,在

mysql5.5 免编译安装及脚本启动报错深入

Mysql安装环境简介: 最近在做MHA.已经安装完毕heartbeat和drbd,现在准备安装Mysql. Mysql安装目录:/opt/mysql Mysql数据目录:/data/mysql 备注:/data目录实际是drbd需要同步到备节点的磁盘分区 [[email protected] src]# df -h Filesystem     Size  Used Avail Use% Mounted on /dev/sda2      9.5G  2.0G  7.1G 22% / tmpf

记一次 centos7.2 rpm方式安装mysql5.7.19 报错

0.环境 本文操作系统: CentOS 7.2.1511 x86_64 MySQL 版本: 5.7.19 安装之前先把开发环境装一下 yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel glib2 glib2-d

centos7中编译安装mysql5.7.17

MySQL 的安装方式有很多,最常见的就是编译安装和二进制安装: 在这里我将两种安装方式都介绍一下,自由选择: 首先我们来看一下编译安装的步骤: 首先,到官方网站中下载源码包: https://dev.mysql.com/downloads/mysql 选择下载源码包: 有很多针对不同系统的源码包,我们选择通用版: 下载完成后,放到我们服务器上: 接下来按照步骤进行解压编译安装即可; MySQL从5.5开始,使用cmake 进行编译设置:因此,我们还要安装cmake编译工具: shell > y

Yum编译安装Error Downloading Packages报错

1:执行yum clean all 清除缓存目录下的软件包及旧的headers: 2:接着执行 yum list重新列出所有已经安装和可以安装的软件包: 3:重新执行上述命令,发现yum编译成功: 注意:如果执行 yum list 报错,那就检查一下yum仓库是否有问题:并清除/etc/yum.repos.d/下多余.repo文件!

编译安装php5.6.30报错

[[email protected]_id01_u4_19.116 Software]# cat /etc/redhat-release CentOS release 6.8 (Final)...编译报错:make: *** [sapi/cli/php] Error 1 分析在编译安装php时出现 [undefined reference to libiconv_open']子类的错误信息,表示在 ./configure 没抓好些环境变数值,错误发生点在建立 [ -o sapi/cli/php]