CentosMySQL5.7安装、升级教程
MySQL 5.7安装、升级笔记分享:
卸载当前的 MySQL
查看当前 MySQL 版本:
[root@coderknock ~]# mysql -V
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (i386) using readline 5.1
停⽌ MySQL 服务
[root@coderknock ~]# service mysqld stop
Stopping mysqld: [ OK ]
备份数据【数据不重要可以忽略】
备份数据库,升级MySQL通常不会丢失数据,但保险起见,我们需要做这⼀步。输⼊命令:
[root@coderknock ~]# mysqldump -u xxx -h xxx -P 3306 -p --all-databases > databases.sql
卸载旧版本 MySQL
[root@coderknock ~]# yum remove mysql mysql-*
Loaded plugins: security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.i686 0:5.1.73-7.el6 will be erased
---> Package mysql-libs.i686 0:5.1.73-7.el6 will be erased
--> Processing Dependency: libmysqlclient.so.16 for package: 2:postfix-2.6.6-6.el6_7.1.i686
--> Processing Dependency: libmysqlclient.so.16 for package: perl-DBD-MySQL-4.013-3.el6.i686
-
-> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16) for package: 2:postfix-2.6.6-6.el6_7.1.i686
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16) for package: perl-DBD-MySQL-4.013-3.el6.i686
--> Processing Dependency: mysql-libs for package: 2:postfix-2.6.6-6.el6_7.1.i686
---> Package mysql-server.i686 0:5.1.73-7.el6 will be erased
--> Running transaction check
---> Package perl-DBD-MySQL.i686 0:4.013-3.el6 will be erased
---> Package postfix.i686 2:2.6.6-6.el6_7.1 will be erased
--> Processing Dependency: /usr/sbin/sendmail for package: cronie-1.4.4-16.el6_8.2.i686
--> Processing Dependency: /usr/sbin/sendmail for package: redhat-lsb-core-4.s.i686
--> Running transaction check
---> Package cronie.i686 0:1.4.4-16.el6_8.2 will be erased
--> Processing Dependency: cronie = 1.4.4-16.el6_8.2 for package: cronie-anacron-1.4.4-16.el6_8.2.i686
---> Package redhat-lsb-core.i686 0:4.s will be erased
--> Running transaction check
---> Package cronie-anacron.i686 0:1.4.4-16.el6_8.2 will be erased
--> Processing Dependency: /etc/cron.d for package: crontabs-1.arch
--> Processing Dependency: /etc/cron.d for package: sysstat-9.0.4-31.el6.i686
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> arch 0:1.10-33.el6 will be erased
---> Package sysstat.i686 0:9.0.4-31.el6 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================ Package Arch Version Repository Size
============================================================================================================================================================================================ Removing:
mysql i686 5.1.73-7.el6 @base 2.3 M
mysql-libs i686 5.1.73-7.el6 @base 3.9 M
mysql-server i686 5.1.73-7.el6 @base 24 M
Removing for dependencies:
cronie i686 1.4.4-16.el6_8.2 @updates 169 k
cronie-anacron i686 1.4.4-16.el6_8.2 @updates 38 k
crontabs noarch 1.10-33.el6 @anaconda-CentOS-201311291201.i386/6.5 2.4 k
perl-DBD-MySQL i686 4.013-3.el6 @base 341 k
postfix i686 2:2.6.6-6.el6_7.1 @base 9.3 M
redhat-lsb-core i686 4.s @anaconda-CentOS-201311291201.i386/6.5 22 k
sysstat i686 9.0.4-31.el6 @base 804 k
Transaction Summary
============================================================================================================================================================================================ Remove 10 Package(s)
Installed size: 41 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : mysql-server-5.1.73-7.el6.i686 1/10
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
Erasing : redhat-lsb-core-4.s.i686 2/10
/var/tmp/rpm-tmp.Y5QGjy: line 1: lsb_release: command not found
Erasing : mysql-5.1.73-7.el6.i686 3/10
Erasing : perl-DBD-MySQL-4.013-3.el6.i686 4/10
Erasing : sysstat-9.0.4-31.el6.i686 5/10
Erasing : crontabs-1.arch 6/10
Erasing : cronie-anacron-1.4.4-16.el6_8.2.i686 7/10
Erasing : cronie-1.4.4-16.el6_8.2.i686 8/10
Erasing : 2:postfix-2.6.6-6.el6_7.1.i686 9/10
Erasing : mysql-libs-5.1.73-7.el6.i686 10/10
Verifying : redhat-lsb-core-4.s.i686 1/10
Verifying : perl-DBD-MySQL-4.013-3.el6.i686 2/10
Verifying : mysql-server-5.1.73-7.el6.i686 3/10
Verifying : crontabs-1.arch 4/10
Verifying : sysstat-9.0.4-31.el6.i686 5/10
Verifying : cronie-anacron-1.4.4-16.el6_8.2.i686 6/10
Verifying : cronie-1.4.4-16.el6_8.2.i686 7/10
Verifying : mysql-libs-5.1.73-7.el6.i686 8/10
Verifying : mysql-5.1.73-7.el6.i686 9/10
Verifying : 2:postfix-2.6.6-6.el6_7.1.i686 10/10
Removed:
mysql.i686 0:5.1.73-7.el6 mysql-libs.i686 0:5.1.73-7.el6 mysql-server.i686 0:5.1.73-7.el6
Dependency Removed:
cronie.i686 0:1.4.4-16.el6_8.2 cronie-anacron.i686 0:1.4.4-16.el6_8.arch 0:1.10-33.el6 perl-DBD-MySQL.i686 0:4.013-3.el6 postfix.i686 2:2.6.6-6.el6_7.1
redhat-lsb-core.i686 0:4.s sysstat.i686 0:9.0.4-31.el6
Complete!
这样就卸载完成了,为了保险起见我们检查⼀下系统中是否还有 MySQL 相关内容没有删除⼲净
[root@coderknock ~]# yum list installed | grep mysql
[root@coderknock ~]#
mysql下载libs包的网址上⾯的情况是没有未删除部分,如果有的话可通过下⾯的命令删除:
[root@coderknock ~]# yum remove mysql-libs
下载最新版本的 MySQL
查看系统配置信息选择对应 MySQL 包
[root@coderknock ~]# uname -r
3.10.104-1.el6.elrepo.i686
在浏览器打开 sohu提供的
然后根据⾃⼰系统配置选择对应的 rpm 包,右键复制⽂件链接,我的选择如下:
下载并解压
[root@coderknock ~]# wget mirrors.sohu/mysql/MySQL-5.7/mysql-5.7.17-1.el6.i686.rpm-bundle.tar
--2017-01-06 22:46:15-- mirrors.sohu/mysql/MySQL-5.7/mysql-5.7.17-1.el6.i686.rpm-bundle.tar
Resolving 119.188.36.70
Connecting to mirrors.sohu|119.188.36.70|:80... connected.
HTTP request sent, 200 OK
Length: 448163840 (427M) [application/octet-stream]
Saving to: “mysql-5.7.17-1.el6.i686.rpm-bundle.tar”
100%[=============================================================================================================================================================>] 448,163,840 9.98M/s in 45s 2017-01-06 22:47:00 (9.54 MB/s) - “mysql-5.7.17-1.el6.i686.rpm-bundle.tar” saved [448163840/448163840]
[root@coderknock ~]# tar xvf mysql-5.7.17-1.el6.i686.rpm-bundle.tar
mysql-community-libs-compat-5.7.17-1.el6.i686.rpm
mysql-community-client-5.7.17-1.el6.i686.rpm
mysql-community-embedded-devel-5.7.17-1.el6.i686.rpm
mysql-community-devel-5.7.17-1.el6.i686.rpm
mysql-community-common-5.7.17-1.el6.i686.rpm
mysql-community-test-5.7.17-1.el6.i686.rpm
mysql-community-embedded-5.7.17-1.el6.i686.rpm
mysql-community-libs-5.7.17-1.el6.i686.rpm
mysql-community-server-5.7.17-1.el6.i686.rpm
安装及配置
安装 rpm 【有依赖关系,请按下⾯的步骤安装,搜索 [root@coderknock ~]# 可跳过安装⽇志直接查看相关命令】
[root@coderknock ~]# yum localinstall mysql-community-common-5.7.17-1.el6.i686.rpm
Loaded plugins: security
Setting up Local Package Process
Examining mysql-community-common-5.7.17-1.el6.i686.rpm: mysql-community-common-5.7.17-1.el6.i686
Marking mysql-community-common-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-common.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================ Package Arch Version Repository Size
============================================================================================================================================================================================ Installing:
mysql-community-common i686 5.7.17-1.el6 /mysql-community-common-5.7.17-1.el6.i686 2.5 M
Transaction Summary
============================================================================================================================================================================================ Install 1 Package(s)
Total size: 2.5 M
Installed size: 2.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mysql-community-common-5.7.17-1.el6.i686 1/1
Verifying : mysql-community-common-5.7.17-1.el6.i686 1/1
Installed:
mysql-community-common.i686 0:5.7.17-1.el6
Complete!
[root@coderknock ~]# yum localinstall mysql-community-libs-5.7.17-1.el6.i686.rpm
Loaded plugins: security
Setting up Local Package Process
Examining mysql-community-libs-5.7.17-1.el6.i686.rpm: mysql-community-libs-5.7.17-1.el6.i686
Marking mysql-community-libs-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-libs.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================ Package Arch Version Repository Size
============================================================================================================================================================================================ Installing:
mysql-community-libs i686 5.7.17-1.el6 /mysql-community-libs-5.7.17-1.el6.i686 7.8 M
Transaction Summary
============================================================================================================================================================================================ Install 1 Package(s)
Total size: 7.8 M
Installed size: 7.8 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mysql-community-libs-5.7.17-1.el6.i686 1/1
Verifying : mysql-community-libs-5.7.17-1.el6.i686 1/1
Installed:
mysql-community-libs.i686 0:5.7.17-1.el6
Complete!
[root@coderknock ~]# yum localinstall mysql-community-client-5.7.17-1.el6.i686.rpm
Loaded plugins: security
Setting up Local Package Process
Examining mysql-community-client-5.7.17-1.el6.i686.rpm: mysql-community-client-5.7.17-1.el6.i686
Marking mysql-community-client-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
-
--> Package mysql-community-client.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================ Package Arch Version Repository Size
============================================================================================================================================================================================ Installing:
mysql-community-client i686 5.7.17-1.el6 /mysql-community-client-5.7.17-1.el6.i686 87 M
Transaction Summary
============================================================================================================================================================================================ Install 1 Package(s)
Total size: 87 M
Installed size: 87 M
Is this ok [y/N]: ^[[A^Hy
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mysql-community-client-5.7.17-1.el6.i686 1/1
Verifying : mysql-community-client-5.7.17-1.el6.i686 1/1
Installed:
mysql-community-client.i686 0:5.7.17-1.el6
Complete!
[root@coderknock ~]# yum localinstall mysql-community-server-5.7.17-1.el6.i686.rpm
Loaded plugins: security
Setting up Local Package Process
Examining mysql-community-server-5.7.17-1.el6.i686.rpm: mysql-community-server-5.7.17-1.el6.i686
Marking mysql-community-server-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================ Package Arch Version Repository Size
============================================================================================================================================================================================ Installing:
mysql-community-server i686 5.7.17-1.el6 /mysql-community-server-5.7.17-1.el6.i686 695 M
Transaction Summary
============================================================================================================================================================================================ Install 1 Package(s)
Total size: 695 M
Installed size: 695 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mysql-community-server-5.7.17-1.el6.i686 1/1
Verifying : mysql-community-server-5.7.17-1.el6.i686 1/1
Installed:
mysql-community-server.i686 0:5.7.17-1.el6
Complete!
配置
查看版本
[root@coderknock ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.17, for Linux (i686) using EditLine wrapper
启动 MySQL
[root@coderknock ~]# service mysqld start
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
上⾯的情况说明启动失败,这是因为经过上⾯的步骤,MySQL 最新版已经安装到我们的系统了,但这是还没有初始化数据,所以导致⽆法启动。
初始化数据库
[root@coderknock ~]# mysqld --initialize
如果遇到错误如下:
2017-01-06T14:53:08.889803Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-01-06T14:53:08.892190Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-01-06T14:53:08.892475Z 0 [ERROR] Aborting
可以运⾏以下命令【⽆需再执⾏ mysqld --initialize】:
[root@coderknock ~]# rm -rf /var/lib/mysql
[root@coderknock ~]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]
这样我们就启动了 MySQL 服务
MySQL ⽆法登陆的解决办法
登录时我遇到了⼀些问题:
[root@coderknock ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
这是因较新版本的 MySQL 因为安全的考虑,会设置默认密码
[root@coderknock ~]# grep 'temporary password' /var/log/mysqld.log
2017-01-06T14:53:33.490540Z 1 [Note] A temporary password is generated for root@localhost: Ei(GLix_p6/1
这样就到了密码,如果上⾯⽅法不可⾏可以看看是否有 /root/.mysql_secret ⽂件
或者通过以下⽅法直接修改密码:
[root@coderknock ~]# service mysqld stop
Stopping mysqld: [ OK ]
[root@coderknock ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[1] 14208
[root@coderknock ~]# 2017-01-06T15:02:18.663496Z mysqld_safe Logging to '/var/log/mysqld.log'.
2017-01-06T15:02:18.666764Z mysqld_safe Logging to '/var/log/mysqld.log'.
2017-01-06T15:02:18.693025Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
^C
[root@coderknock ~]# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>update mysql.user set authentication_string=password('你的密码.') where User='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
mysql> update mysql.user set Host='%' where User='root'
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
注意SQL在Linux下要注意⼤⼩写,执⾏之后Query OK, 1 row affected, 1 warning (0.00 sec),row 之前是1才代表执⾏成功了。update mysql.user set Host='%' where User='root' 这句是为了别的 IP 的机
器也可以登录我们的MySQL,可以按需执⾏
重置密码
⽆论是获取到了默认密码还是强⾏修改了密码。新版 MySQL 在第⼀次通过密码登录后会⽆法执⾏SQL:
mysql> select host from mysql.user where User='root';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
这是因为 MySQL 为了安全会要求修改初始密码。
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';
如果遇到ERROR 1819 (HY000): Your password does not satisfy the current policy requirements说明你的密码太简单,需要设置复杂点的密码,有⼤⼩写字母、有数字、有标点基本上就可以通过。
注意,如果你没有修改过 root ⽤户的Host或者修改为⾮ % 的字符,需要对上⾯的语句进⾏对应的修改,例如: ALTER USER ‘root'@'localhost' IDENTIFIED BY ‘你的密码'
如果遇到ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 则需要退出安全模式,正常启动MySQL后登陆再进⾏以上操作:
mysql> quit
[root@coderknock ~]# ps -ef|grep mysql
root 14208 12686 0 23:02 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking
mysql 14381 14208 0 23:02 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --skip-networking --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/v root 15148 12686 0 23:23 pts/0 00:00:00 grep mysql
[root@coderknock ~]# kill -9 114208
-bash: kill: (114208) - No such process
[root@coderknock ~]# kill -9 14208
[1]+ Killed mysqld_safe --user=mysql --skip-grant-tables --skip-networking
[root@coderknock ~]# kill -9 1438
[root@coderknock ~]# service mysqld start
[root@coderknock ~]# mysql -u root mysql
精彩专题分享:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论