mysql下载不了怎么办linuxmysql5.5升级⾄mysql5.7的步骤与踩到的坑⽬录
linux mysql5.5升级⾄mysql5.7
1.下载mysql5.7.32
2. 进⼊旧的mysql的bin⽬录下导出mysql的数据
3. 进⼊新的mysql根⽬录下创建存放数据的data⽬录
4. 对于刚解压的新数据库,⾸先执⾏初始化命令
5. 设置跳过密码登录
6. 启动服务
7. 设置密码
8. 停⽌服务
9. 启动服务
10. 新命令⾏登录
11. 设置其他ip可以连接mysql
12. 导⼊历史数据
13. 执⾏更新
MySQL从5.5升级到5.7
1.升级⽅式
2.环境介绍
3.升级思路
4.实在演练
4.1.登陆到mysql-proxy中将其中⼀台从库从集中踢出
4.2.替换mysql的安装⽬录
4.3.启动mysql服务
4.4.升级系统表数据字典信息,命令如下:
4.5.升级完以后重启⼀下mysql
4.6.重新做⼀下主从配置
4.7加⼊到读写分离的集中
Mysql5.5升级到5.7的过程已经踩到的坑
1、卸载数据库
2、安装新数据库
3、配置
linux mysql5.5升级⾄mysql5.7
下⾯先分享⼀个简单的升级mysql的步骤,后⾯⼩编为⼤家整理了多个补充,⼤家可以参考⼀下。
1.下载mysql5.7.32
解压
tar xvf mysql/
2. 进⼊旧的mysql的bin⽬录下导出mysql的数据
./mysql -uroot -pxxxx -h127.0.0.1 -P3306 </home/mysql5.5/bin/all.sql
3. 进⼊新的mysql根⽬录下创建存放数据的data⽬录
mkdir data
4. 对于刚解压的新数据库,⾸先执⾏初始化命令
cd bin
./mysql_install_db --basedir=../ --datadir=../data
PS: 以上升级是在Cent OS上的,但是在中标麒麟我升级的时候,发现不认识上⾯的语句,需要替换成下⾯这个初始化语句
./mysqld --defaults-file=../myf --basedir=../ --datadir=../data --user=root --initialize
5. 设置跳过密码登录
在myf 中的[mysqld]中添加skip-grant-tables
myf 为数据库的配置⽂件
6. 启动服务
./mysqld --defaults-file=../myf --basedir=../ --datadir=../data --user=root
7. 设置密码
在新的命令⾏窗⼝登录mysql
./mysql -uroot
use mysql;
update mysql.user set authentication_string=password('xxxx') where user='root';
8. 停⽌服务
注释掉配置⽂件中的skip-grant-tables
9. 启动服务
./mysqld --defaults-file=../myf --basedir=../ --datadir=../data --user=root
10. 新命令⾏登录
./mysql -uroot -pxxxx
use mysql;
这个时候:不管运⾏任何命令,总是提⽰这个 You must reset your password using ALTER USER statement before executing this statement.
这时执⾏下⾯的语句
SET PASSWORD = PASSWORD('xxxx');
11. 设置其他ip可以连接mysql
use mysql;
grant all privileges on *.* to "root"@"%" identified by "xxxx";
12. 导⼊历史数据
cd bin
./mysql -uroot -pxxxx -h127.0.0.1 -P3306 </home/mysql5.5/bin/all.sql
13. 执⾏更新
cd bin
./mysql_upgrade
14. 升级后可能出现查询语句出现报错的情况,可执⾏下⾯的语句
set @@sql_mode
='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set sql_mode
='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';下⾯是其他⽹友的补充
MySQL从5.5升级到5.7
最近有个任务将MySQL从5.5版本升级到5.7,没升级过数据库,只能摸索的前进。上⽹了⼀堆资料。⽬测看只有两种升级⽅式
1.升级⽅式
1.Logical Upgrade(逻辑升级):利⽤mysqldump来直接导出SQL⽂件,然后起⼀个新的MySQL5.7库,将导出的SQL⽂件导⼊到新库中,当然如果采⽤这种⽅式的话建议不要⽤mysqldump⽽使⽤mydumper.因为我们公司的数据量很⼤所以没有采⽤这个⽅法来处理。
2.In-Place Upgrade:这个升级⽅法简单快速,就是直接替换原来的MySQL的安装⽬录和/etc/myf配置⽂件,利⽤mysql_upgrade脚本来完成系统表的升级。
2.环境介绍
我们的mysql集采⽤的是Atlas读写分离,mysql-proxy下有4台数据库服务器:
master: 172.16.100.1
slave1:172.16.100.2
slave2:172.16.100.3
slave3:172.16.100.4
当前数据库版本:”5.5.21
配置⽂件:/etc/myf
数据⽬录:/data/mysql
操作系统版本:CentOS6.9
3.升级思路
因为是线上业务不能中断,所以决定先将其中⼀台slave踢出集,并升级到mysql5.7,然后再讲mysql5.7这台设备加⼊到集当中,等数据同步完了再做主备切换,再升级其他的slave节点。
4.实在演练
4.1.登陆到mysql-proxy中将其中⼀台从库从集中踢出
mysql -uuser -ppwd -h127.0.0.1 -P234
查看后端代理库
mysql> SELECT * FROM backends;
+-------------+-------------------+-------+------+
| backend_ndx | address  | state | type |
+-------------+-------------------+-------+------+
|  1 | 172.16.100.1:3306 | up | rw |
|  2 | 172.16.100.2:3306 | up | ro |
|  3 | 172.16.100.3:3306 | up | ro |
|  4 | 172.16.100.4:3306 | up | ro |
+-------------+-------------------+-------+------+
5 rows in set (0.00 sec)
将服务172.16.100.4从集中踢出
mysql> remove backend 4
4.2.替换mysql的安装⽬录
到mysql的官⽹下载mysql5.7版本mysql-5.7.23-linux-glibc2.12-x86_
解压mysql5.7
tar -zxf mysql-5.7.23-linux-glibc2.12-x86_ -C /usr/local/
如果你之前的mysql⽬录是链接的⽅式创建的话,那么只需要取消链接,从新做⼀下链接就可以了
cd /usr/local/
unlink mysql
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
如果你之前的mysql⽬录不是链接的⽅式,那么重新命名⼀下,再链接⼀个mysql⽬录就可以了
cd /usr/local/
mv mysql mysql5.5
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql(建议尽可能的使⽤这种⽅式,⽐较⽅便升级)
4.3.启动mysql服务
mysql5.7以后是不需要进⾏数据库初始化的,也就是不⽤去执⾏mysql_install_db这个命令
/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql --skip-grant-tables --skip-networking &
ps -ef |grep mysql
如果有出息错误的话查看⽇志信息
4.4.升级系统表数据字典信息,命令如下:
/usr/loca/mysql/bin/mysql_upgrade
输出的结果:
可能会有⼀些error提⽰"ALTER TABLE ** FROCE",这些错误不⽤担⼼mysql在后⾯会⾃动修复repair的时间可能会有点长,要看你的数据库情况,我这次升级花了两个多⼩时
最后如果输出Upgrade process completed successfully那么就表⽰升级成功了。
4.5.升级完以后重启⼀下mysql
/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql &
查看⼀下是否升级完了,如果升级成功的话输出如下
This installation of MySQL is already upgraded to 5.7.23, use --force if you still need to run mysql_upgrade
4.6.重新做⼀下主从配置
重做⼀下主从配置
mysql> change master to master master_host="172.16.100.1",master_user="***",master_passowrd="***",master_log_file=" mysql-bin.000004", master_log_pos=1083;
mysql> start slave;
mysql> show slave status\G;
如果两个yes就说明正常了
4.7加⼊到读写分离的集中
到mysql-proxy设备上⾯
mysql -uuser -ppwd -h127.0.0.1 -P234
mysql> ADD SLAVE 172.16.100.4
mysql> select * from backends;
如果state的状态是up的就说明加⼊集成功了。
后记:
我第⼀次升级数据库,不知道整体思路对不对,先在测试环境上⾯做的测试,然后⼜测了⼏天没有问题了才在线上做的升级。仅供参考。
Mysql5.5升级到5.7的过程已经踩到的坑
故事是这样⼦的,我们公司有⼏台⽼的mysql版本是5.5的,最近项⽬做了⼀些升级增加了⼏个字段,⽤spring-data-jpa⾃动刷新表结构的时候报错了,原因是mysql5.5的版本不⽀持⼀张表⾥⾯有两个以上的 current_timestamp 作为default value。所以就要考虑升级下数据库
先到服务器上⾯看了下版本
再看了下源
哦,顺带提⼀句,我们公司在⽤的aws 的 ec2 ,所以都是amz的源
试了下 yum update mysql-server 然后并没什么卵⽤,所以继续往下搞。
⽹上看了好多都说是先把旧版本的数据库卸载了再⽤装新版本的数据库,那我的⾥⾯的数据咋办,为了保险起见,我先办数据库做了个备份,⼀个库⼀个库的备份,我看mysql库⾥⾯也配了好多⽤户和权限,就顺便也把mysql备份了,然后开搞。
1、卸载数据库
yum remove mysql-server
但是我们这边装的好像不太⼀样,我就把刚才yum查到的⼏个都卸载了。
卸载前记得把mysql服务关掉,要不然装新版本之后⽤mysql --version 查看是5.7 mysql 登录进去还是5.5然后重启服务就各种问题。因为有些⽂件没被删掉,导致新装的数据库好奇怪的样⼦。。。
2、安装新数据库
yum search mysql57
先看看有什么版本可以选,这个没啥说的直接
yum install msyql57-server.x86_64
安装下来就ok,来看看都装了些啥东西
很奇怪⼀点就是mysql-config依赖竟然还是5.5的,不过⽤起来没发现啥问题
3、配置
安装好了之后修改以下myf
我的服务器上⾯是在/etc/myf 不知道其它的镜像有没有变化
在配置的时候我突然想到数据存储的空间是还在的啊,配过去看看能⽤不
于是就在myf配了这⼀⾏(5.5的好多配置都弃⽤了,之前的myf⾥⾯的都要删⼀删要不然启动时会报错)
配置之后果断启动服务
service mysqld start
果然报错了
看了下启动⽇志
[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directoryAdditionally, an exception has occurred while trying to report this error: Zend_ExceptionNo entry is registered for key 'translate' (Abstract.php:144)
具体解决⽅法如下
a. 登录到那台服务器主机上⾯
b. Add skip-grant-tables in /etc/myf file under [mysqld] section 意思就是开启安全模式(不验证密码什么的)
c. service mysqld start
d. mysql_upgrade
e. service mysqld restart
我执⾏了⼀下mysql_upgrade
查了查官⽅⽂档,⼤体意思就是升级之后好多东西不怎么兼容,官⽅提供这个脚本来修复之前的⼯作空间
果然是⽆缝升级mysql数据库中的⽤户都还在之前的数据库也没有受到影响
⾄此升级完成
到此这篇关于linux mysql5.5升级⾄mysql5.7的详细步骤的⽂章就介绍到这了,更多相关mysql5.5升级⾄5.7内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。