数据库
首页 > 数据库> > centos 7 源码方式安装mysql5.6

centos 7 源码方式安装mysql5.6

作者:互联网

mysql安装:参考文章1
mysql编译报错:参考文章2

1、首先,创建目录,输入命令:

mkdir /usr/local/mysql
mkdir /usr/local/mysql/data

2、接着,进入/usr/local/mysql目录,下载mysql5.6的压缩包,输入命令:

cd /usr/local/mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz

注:如果没有安装wget,请执行命令:yum install wget

3、yum方式安装相关依赖包,输入命令:

yum -y install cmake bison git ncurses-devel gcc gcc-c++

4、创建一个用户名为mysql的用户并加入mysql用户组,输入命令:

groupadd mysql

useradd -g mysql mysql

5、解压mysql-5.6.22.tar.gz,输入命令:

tar zxvf mysql-5.6.22.tar.gz 

6、进入解压后的目录,开始编译,可能有点慢,输入命令:

cd mysql-5.6.22

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

make

(1)、make的过程,可能会出现问题,我这边报了一个错误,如下图所示:
在这里插入图片描述
(2)、解决办法:修改sql_acl.cc文件,找到报错的那一行,第3215行,把单引号改成双引号,输入命令:

vi /usr/local/mysql/mysql-5.6.22/sql/sql_acl.cc

修改后如下图所示:
在这里插入图片描述
(3)、保存之后,重新执行以下命令:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

make

7、安装,安装完成后,清理临时数据,输入以下命令:

make install

make clean

8、修改目录属主权限,输入命令:

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

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

9、创建MySQL Server系统表

(1)、输入命令:

cd /usr/local/mysql/

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

(2)、此处报错,如下图所示:
在这里插入图片描述
(3)、解决办法,安装autoconf库:

yum -y install autoconf

(4)、安装完成后,重新执行命令:

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

(5)、把初始化生成的 /usr/local/mysql/my.cnf 配置文件的属主数组更改为mysql

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

10、配置脚本启动
(1)、复制mysql启动shell脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

(2)、启动MySQL,输入命令:

/etc/init.d/mysql status

/etc/init.d/mysql start

(3)、启动成功

11、根据需要设置开机自动启动服务,依次输入以下命令:

chkconfig --add mysql
chkconfig mysql on

12、设置mysql的软连接,输入命令:

ln -s  /usr/local/mysql/bin/mysql  /usr/bin

13、设置数据库密码
(1)、输入命令:

mysql -uroot -p

默认密码为空,直接按回车键

(2)、进入mysql命令行,输入命令:

set password for root@localhost = password('123456');
flush privileges;

(3)、输入exit,退出命令行,重新输入命令:

mysql -uroot -p

输入刚才设置的密码,就登录进来了。

14、接着用mysql管理工具,远程连接的时候,出现了MySQL 1130错误,解决办法:
(1)、进入mysql命令行,输入以下命令:

use mysql;
update user set host = '%' where user ='root';

(2)、接着,可能会报错,ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’

(3)、查看一下host是否已经有了%这个值,有了就可以了,输入命令:

select host,user from user where user='root';

(4)、接着刷新一下,输入命令:

flush privileges;

15、 这时,mysql就已经装好了,其中遇到了一些问题,比如像这个问题:

Starting MySQL.The server quit without updating PID file (/[FAILED]mysql/

根据网上资料整了一下,发现还是一直这样,于是,进行了以下的操作:
(1)、删除/usr/local/mysql/data目录下的所有文件
(2)、删除/usr/local/mysql目录下的my.cnf文件
(3)、删除/etc/my.cnf文件
(4)、重新执行了以下命令:

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

(5)、后面发现/etc/my.cnf不会生成了,重新启动mysql服务成功,我也不知道是什么情况了,接着按照上面的操作配置就行了,也不知道是不是环境不一样还是怎样,跟之前我搭的好像又不太一样,后面再看看了,搭了那么久。。绝了。。

标签:centos,mysql5.6,命令,源码,usr,mysql,DMYSQL,local,输入
来源: https://blog.csdn.net/u012561176/article/details/120542648