删除旧的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.安装依赖包
yum install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl
6.安装cmake3.6.1
解压:
tar -zxvf cmake-3.6.1.tar.gz
mv cmake-3.6.1 /mydata/app/cmake
安装:
./bootstrap
make
make install
设置环境变量:
vim /etc/profile
最后加上两行:
PATH=/mydata/app/cmake/bin:$PATH
export PATH
环境变量生效:
source /etc/profile
7.安装 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
8.配置组和用户
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql (不允许登录的用户名)
mkdir /mydata/app/mysql (存储mysql可执行文件)
mkdir /mydata/mysql_data (存储mysql数据文件)
mkdir /mydata/log/mysql (存储日志)
设置权限:
chown -R mysql:mysql /mydata/app/mysql/.
chown -R mysql:mysql /mydata/mysql_data
chown -R mysql:mysql /mydata/log/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_data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3902 \
-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
13.加入环境变量
vim /etc/profile
PATH=/mydata/app/mysql/bin:/mydata/app/mysql/lib:$PATH
centos6.5加入服务
chkconfig --add mysql
chkconfig mysql on
centos7加入服务
systemctl enable mysql (报错看最后处理方法)
systemctl restart mysql.service
ps -ef | grep mysql 注意看是服务是否开启
my.cnf配置大小写不敏感:
vi /etc/my.cnf 添加如下内容,lower_case_table_names=1
13.设置root密码(非必需步骤),当root没有密码无法登录时
# 先停止mysql服务
service mysql stop
# 以安全模式启动mysql
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
# 开启另一个远程终端,登录mysql
/usr/local/mysql/bin/mysql -u root
# 设置密码
use mysql;
update user set authentication_string=PASSWORD("123456") where User='root';
flush privileges;
# 停止mysql
service mysql stop
# 重启mysql
service mysql start
# 使用root登录
mysql -uroot -p123456
# 此时使用use mysql;打开数据库,会提示密码有问题,使用下面的语句设置一次密码就可以正常使用了
SET PASSWORD = PASSWORD('123456');
# 设置密码永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
# 配置生效
flush privileges;
# 给特定IP增加远程访问权限
GRANT ALL PRIVILEGES ON *.* TO root@"111.111.111.225" IDENTIFIED BY "123456";
flush privileges;
出错问题
1.ERROR! The server quit without updating PID file (/mydata/mysql/iZ94vn5dxu3Z.pid)
可能问题:
a.权限,上面有设置权限的命令。
b.datadir有问题,使用mysqld --initialize --console初始化相关基础数据库(先创建datadir,为空并且设置权限)
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/var/mysql_data --basedir=/usr/local/mysql/
c.错误日志可在my.cnf中配置