知行教育项目_mysql升级版本

由于CentOs6 已停止维护,知行教育运行的sql脚本要求myql版本高,所以要升级成mysql8.0,于是乎开始了艰难的升级之路。

centos6里yum源不可用解决方案

先备份 先备份 先备份 重要的事情说三遍

wget -O /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo

wget -O /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo

yum makecache

安装mysql

  1. 首先更新rpm

从MySQL Yum仓库下载最新的rpm文件:http://dev.mysql.com/downloads/repo/yum/

(需要Oracle帐号以及填写一些使用信息,才能进入下载页面)

我需要下载的是:mysql-community-release-el6-5.noarch.rpm

  1. 安装这个发布包

yum localinstall mysql-community-release-el6-5.noarch.rpm

扫描二维码关注公众号,回复: 12758688 查看本文章

可以通过下面的命令来确认这个仓库被成功添加:

yum repolist enabled | grep "mysql.-community.

  1. 安装MySQL服务器

yum install mysql-community-server

新版本的目标文件是/usr/bin/mysql,如果原预装路径在/bin下面,则需要进行替换,最好是使用软链接,比如ln -s /usr/bin/mysql /bin/

这样在需要的时候,可以方便的在不同版本之间进行切换。(有时候需要版本回退来定位问题)

  1. 重启服务器就可以了

service mysqld restart

确认版本信息:

[root@west195246 bin]# mysql -V
mysql Ver 14.14 Distrib 5.6.20, for Linux (x86_64) using EditLine wrapper

方法千万条,备份第一条!

运行:service mysqld start 重启数据库总是会出现如下提示:
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
的提示。如果直接输入 mysql -root -p登陆会出现[mysql]ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)的错误提示。总之MySql服务器端总是无法启动。网上的提供很多解决方法也没有效果。最后通过如下方法解决:

rm -rf /var/lib/mysql/* 涉及删除改为如下重命名备份
mv /var/lib/mysql/ /var/lib/mysql_bak/
rm /var/lock/subsys/mysqld 涉及删除改为如下重命名备份
mv /var/lock/subsys/mysqld /var/lock/subsys/mysqld_bak
killall mysqld
再运行: service mysqld start
发现能正常运行了

mysql8.0 登录不成功解决方案:

1://免密码登陆
找到mysql配置文件:my.cnf,
在【mysqld】模块添加:skip-grant-tables 保存退出;

2://使配置生效
重启mysql服务: service mysqld restart;

3://将旧密码置空
mysql -u root -p //提示输入密码时直接敲回车。
//选择数据库
use mysql
//将密码置空
update user set authentication_string = '' where user = 'root';
//退出
quit

4://去除免密码登陆
删掉步骤1的语句 skip-grant-tables
重启服务 service mysqld restart

5://修改密码
mysql -u root -p //提示输入密码时直接敲回车,刚刚已经将密码置空了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';//'abc123@xxx' 密码形式过于简单则会报错

ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉

远程登录:

$ /usr/local/mysql/bin/mysql -u root -p
--输入密码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| seckill            |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
--查询当前数据库相关信息
mysql> select host,user,authentication_string,plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1                              | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)

--将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

--刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

--将用户root密码设置为永不过期
mysql> alter user 'root'@'%' identified by '12345678' password expire never;
Query OK, 0 rows affected (0.01 sec)

--将root用户密码加密方式改为mysql_native_password ,上面查到root用户密码的加密方式为caching_sha2_password 
mysql> alter user 'root'@'%' identified with mysql_native_password by '12345678';
Query OK, 0 rows affected (0.00 sec)

--刷新权限,在别的机器上即可登录
mysql> flush privileges;

猜你喜欢

转载自blog.csdn.net/xianyu120/article/details/111940802