centos6.5下面编译安装mysql5.7.10版本

时间:2022-12-16 10:26:51

  • 删除旧的mysql版本

1.停止与删除服务

service mysql stop

chkconfig --del mysql


2.查看是否已安装:
yum list installed | grep mysql


3.移除已安装:
yum -y remove mysql-libs.x86_64


4.删除安装目录以及启动快捷方式(编译安装方式)

rm -rf mysql

rm -rf /etc/rc.d/init.d/mysql


  • 安装新的mysql版本

1.下载mysql5.7.10 source code,选择通用linux版本的source code

http://220.112.193.195/files/11120000007D479D/mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10.tar.gz


2.下载boost,mysql5.7.10需要依赖的一个新东西

http://211.162.127.15/files/4235000001BBBEC9/sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz


3.下载cmake3.6.1

https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz


4.移除旧的cmake和mysql

rpm -qa | grep cmake

yum -y remove cmake


rpm -qa | grep mysql

yum -y remove mysql-*



5.安装cmake3.6.1

解压:

tar -zxvf cmake-3.6.1.tar.gz

mv cmake3.6.1 /mydata/app/cmake


安装:

     ./bootstrap
     make
     make install


6.安装 boost_1_59_0 

tar -zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /mydata/app/boost


执行安装:

./bootstrap.sh

./b2

./b2 install


7.安装依赖包

yum install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl


8.配置组和用户

groupadd mysql

useradd mysql -s /sbin/nologin -M -g mysql  (不允许登录的用户名)

mkdir  /mydata/app/mysql   (存储mysql可执行文件)

mkdir  /mydata/mysql           (存储mysql数据文件)


设置权限:

chown -R mysql:mysql /mydata/app/mysql/.
chown -R mysql:mysql /mydata/mysql


9.解压mysql

tar -zxvf mysql-5.7.10.tar.gz


10.进到解压后的目录,设置编译选项

cmake \
-DCMAKE_INSTALL_PREFIX=/mydata/app/mysql \
-DMYSQL_UNIX_ADDR=/mydata/app/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/mydata/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DDOWNLOAD_BOOST=1  \
-DWITH_BOOST=/mydata/app/boost


11.编译安装

make && make install


如编辑安装失败,则执下面的命令清除

make clean
rm -f CMakeCache.txt


12.配置mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on


my.cnf配置大小写不敏感:
vi /etc/my.cnf 添加如下内容,lower_case_table_names=1


13.设置root密码(非必需步骤),当root没有密码无法登录时

# 先停止mysql服务

service mysql stop


# 以安全模式启动mysql

mysqld_safe --skip-grant-tables


# 开启另一个远程终端,登录mysql

mysql -u root


# 设置密码

use mysql;

update user set authentication_string=PASSWORD("123456") where User='root';


# 停止mysql

service mysql stop


# 重启mysql

service mysql start


# 使用root登录

mysql -uroot -p123456


# 此时使用use mysql;打开数据库,会提示密码有问题,使用下面的语句设置一次密码就可以正常使用了

SET PASSWORD = PASSWORD('123456');



  • 出错问题

1.ERROR! The server quit without updating PID file (/mydata/mysql/iZ94vn5dxu3Z.pid)

可能问题:

a.权限,上面有设置权限的命令。

b.datadir有问题,使用mysqld --initialize --console初始化相关基础数据库(先创建datadir,为空就行了)