之前使用yum安装mysql确实很方便,但是默认安装的myql5.0版本的,不支持utf8mb4(utf8mb4扩展到一个字符最多能有4节,所以能支持更多的字符集,比如支持emoji表情)编码格式,所以要升级数据库,yum库升级貌似有点费劲,果断卸载了,使用rpm直接安装,卸载的时候遇到一些问题,要卸载干净请参考之前写的一篇文章:http://blog.csdn.net/tjcyjd/article/details/52189182,言归正传,如何安装呢,其实很简单:
1.先到管网地址下载两个包。
下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
进入下载页面有,选择如下:
选择linux-generic后,又有很多产品选择,我们只下载以下2个就可以了,一个服务包,一个客户端包
Linux - Generic (glibc 2.5) (x86, 64-bit), RPM Package
MySQL Server
(MySQL-server-5.6.32-1.linux_glibc2.5.i386.rpm)
下载地址
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm
Linux - Generic (glibc 2.5) (x86, 64-bit), RPM Package
Client Utilities
(MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm)
下载地址
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm
mysql
mariadb
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
由于CentOS默认的数据库是mariadb,这个会和mysql冲突,所以一般都会先卸载一下rpm -e mariadb-libs-1:5.5.44-2.el7.centos.x86_64 --nodeps
另外如果显示出来安装了的mysql,用以下命令卸载,如有多个用空格隔开多个rpm,如
rpm -e --nodeps MySQL-devel-5.6.29-1.rhel5.x86_64 MySQL-client-5.6.29-1.rhel5.x86_64 MySQL-server-5.6.29-1.rhel5.x86_64
如果在安装过程中有提示找不到
Perl
或者net-tools
等,按提示yum
安装即可
yun install Perl
yum install net-tools
yum install -y perl-Module-Install.noarch
进入下载文件所以目录进行安装
> rpm -ivh MySQL-server-5.6.32-1.linux_glibc2.5.i386.rpm
> rpm -ivh MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm
安装完之后启动mysql
> service mysql start
登录mysql
mysql [-u username] [-h host] [-p[password]] [dbname]
新装mysql连接时会报错:ERROR 1045 (28000): Access denied for user ’root’@’localhost’ (using password: NO)
解决方案如下:
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('xxxxxx') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法三:
# mysql -uroot -p
Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>
至此,困惑多时的问题解决了!
如果use mysql出现以下错误:
1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
则提示修改密码:
set password=password("xxxxxx");
flush privileges;
use mysql
ok