本文目录一览:
- 1、如何升级linux系统的mysql
- 2、阿里云服务器linux 怎么更新mysql
- 3、linux mysql 5.6 能升级5.7 吗
- 4、Linux怎么更新MySQL的版本
- 5、linux中mysql5升级到mysql5.5的方法
如何升级linux系统的mysql
一些MySQL发布对mysql数据库中的系统表的结构进行了更改,添加了新权限或特性。当你更新到新版本MySQL,你应同时更新系统表,以确保它们的结构最新。首先备份mysql数据库,然后按照下面的程序操作。
在Unix或Unix类系统中,运行mysql_fix_privilege_tables脚本来更新系统表:
shell mysql_fix_privilege_tables
你必须在服务器运行时执行该脚本。它试图连接本机上用root运行的服务器。如果root账户需要密码,在命令行中按下述方法给出密码:
shell mysql_fix_privilege_tables--password=root_password
mysql_fix_privilege_tables脚本可以执行将系统表转换为当前格式的任何动作。运行时你可能会看见一些Duplicate column name警告;你可以忽略它们。
运行完脚本后,停止服务器并重启。
在Windows系统中,MySQL分发包括mysql_fix_privilege_tables.sql SQL脚本,你可以用mysql客户端来运行。例如,如果MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1,命令应为:
C:\
C:\Program Files\MySQL\MySQL Server 5.1
\bin\mysql -u root -p mysql
mysql SOURCE C:/Program Files/MySQL/MySQL Server
5.1/scripts/mysql_fix_privilege_tables.sql
如果安装到其它目录,相应地更改路径名。
mysql命令将提示输入root密码;按照提示输入密码。
在Unix中,当mysql处理mysql_fix_privilege_tables.sql script脚本中的语句时,你可能会看见一些Duplicate column name警告;你可以忽略它们。
运行完脚本后,停止服务器并重启。
阿里云服务器linux 怎么更新mysql
方法:
1)先输入mysql -uroot -p 命令
2)输入密码登陆mysql
3)use mysql; //使用mysql库
4)在输入update mysql.user set password=PASSWORD(’123456789′) where User=’root’; 更新mysql密码为:123456789
5)flush privileges ; //刷新库
6)quit 退出mysql
linux mysql 5.6 能升级5.7 吗
1. 下载 5.7.30 的 zip 包并解压到新的目录。
2. 安装 Visual C++ 2012/2013(或更多版本)。
3. 停应用,停止 5.6 实例(可以通过停服务来操作,停止服务前建议记录一下 GTID 或 binlog file 和 position 位置),删除服务。
4. 备份一份 5.6 实例的 datadir,包括 binlog(整个目录 copy 到别的目录存放)。
5. 拷贝 5.6 实例的 datadir 和 my.ini 到 5.7 实例 basedir 目录,调整并优化参数值(注意要确保路径一致,确认已开启 5.7 新特性相关参数,如增强半同步、MTS 等)。
6. 修改系统环境变量,把可执行路径指向 5.7 实例的 basedir/bin。
7. 启动 5.7 实例,创建服务并启动。
8. 验证服务端、客户端版本是否正确。
9. 确认无误后,执行 mysql_upgrade 升级数据字典(会升级系统库:mysql,ps,sys,没有会重建)。
10. 重启实例。
11. 再次校验 5.7 的参数,尽量保持与 5.6 的兼容,尤其要注意 sql_mode 的默认值对业务的影响。
12. 清理 5.6 实例的 basedir 和 datadir 目录(可选)。
13. 如果是主从环境,还要考虑 slave_net_timeout 参数默认值改变带来的影响(主库 error 日志中出现 “ER_RPL_ZOMBIE_ENCOUNTERED” 的报错)。
在 5.7.7 以前,该参数默认是 3600s,之后改为了 60s,需要重新执行 change master to 语句,并且显式指定 master_heartbeat_period=xx,因为从 5.7.4 开始,只有执行 reset slave 才能将其重置为默认值(slave_net_timeout 值的一半)。另外提一句,也是从 5.7.4 开始,执行 change master to 语句时,可以不用先停止复制线程了。
Linux怎么更新MySQL的版本
第一步:检查linux的操作系统版本
代码如下:
cat /etc/issue
第二步:在mysql官网上下载5.7的版本
第三步:检查linux上以前安装的mysql版本
代码如下:
rpm -qa | grep mysql
第四步:如果出现mysql的一些安装版本,则通过以下命令进行删除
代码如下:
rpm -e --nodeps mysql-xxx
第五步:准备安装新版本的mysql-server
代码如下:
rpm -ivh MySQL-server-xxxx
第六步:启动mysql server
代码如下:
service mysql start
第七步:安装mysql client
代码如下:
rpm -ivh MySQL-client-xxx
linux中mysql5升级到mysql5.5的方法
手上有一朋友的服务器是MYSQL5.1,因需要升级到5.5或以上,这儿写下升级到5.5的过程
安装5.5依赖安装包
代码如下
yum
install
-y
autoconf*
automake*
zlib*
libxml*
ncurses-devel*
libgcrypt*
libtool*
openssl*
安装cmake
代码如下
yum
install
-y
cmake
在升级前,建议先将之前5.1的mysql及数据库目录备份一下
停止掉mysql
代码如下
service
mysql
stop
升级mysql
5.5.36
代码如下
tar
xf
mysql-5.5.36.tar.gz
cd
mysql-5.5.36
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc
-DMYSQL_DATADIR=/usr/local/mysql/var
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
-DMYSQL_USER=mysql
-DEXTRA_CHARSETS=all
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_EMBEDDED_SERVER=1
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
make
make
install
删除/etc/下的my.cnf配置文件
代码如下
rm
-rf
/etc/my.cnf
拷贝5.5的配置文件
代码如下
cp
support-files/my-huge.cnf
/etc/my.cnf
尝试启动一下
代码如下
service
mysql
start
执行更新程序并重启mysql
代码如下
/usr/local/mysql/bin/mysql_upgrade
如果一路OK就没事儿,但要是出了错误,请参考我另外一篇文章
mysql5.5升级过程中mysql_upgrade失败的问题
查看下现在的mysql版本
代码如下
cat
mysql_upgrade_info
好了,升级工作完成。
再附升级失败问题解决
在升级mysql5.5过程中,执行/usr/local/mysql/bin/mysql_upgrade
提示:
代码如下
Looking
for
'mysql'
in:
/usr/local/mysql/bin/mysql
Looking
for
'mysqlcheck'
in:
/usr/local/mysql/bin/mysqlcheck
Running
'mysqlcheck'...
/usr/local/mysql/bin/mysqlcheck:
Got
error:
1064:
You
have
an
error
in
your
SQL
syntax;
check
the
manual
that
corresponds
to
your
MySQL
server
version
for
the
right
syntax
to
use
near
'FOR
UPGRADE'
at
line
1
when
executing
'CHECK
TABLE
...
FOR
UPGRADE'
FATAL
ERROR:
Upgrade
failed
想起之前5.1好像是有密码的!这儿换种方式尝试
代码如下
/usr/local/mysql/bin/mysql_upgrade
-S
/var/data/mysql.sock
-uroot
-p
这个也不行了,突然想到出奇招,还是使用5.5的二进制程序,然后更改启动参数,因为我只想要把data目录下的表结构升级而已,必须指定的参数只是data目录,于是我做了如下尝试
#
启用
--skip-grant-tables参数避开检查,先启动再说
代码如下
/usr/local/mysql/bin/mysqld
--datadir=/usr/local/mysql/var/
--user=mysql
--skip-grant-tables
#
看上去成功了
#
中间报了一些innodb的错误,不去理会,应该是配置或是这个半阴半阳状态下问题,这个以后再解决
#
接下来停止这个服务
mysqladmin
shutdown
之,然后以正常参数启动mysqld服务……
修改些my.cnf中的配置参数,以适合mysql5.5
一句话总结:
代码如下
/usr/local/mysql/bin/mysqld
--datadir=/usr/local/mysql/var/
--user=mysql
--skip-grant-tables