1. 卸载已有MySQL

1.1. 查看是否已安装mysql

rpm -qa |grep -i mysql

Linux(Centos6.5)下rpm方式安装MySQL_其他
如果系统已安装,请卸载删除。


1.2. 删除MySQL

删除命令:rpm -e --nodeps 包名
rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64
如果提示依赖包错误,则使用以下命令尝试(个人建议):

rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

Linux(Centos6.5)下rpm方式安装MySQL_重启_02
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts mysql-libs-5.1.73-8.el6_8.x86_64


1.3. 删除残留mysql的文件和库

查找删除残留mysql的文件和库:

find / -name mysql

Linux(Centos6.5)下rpm方式安装MySQL_其他_03
删除对应的mysql目录:

rm -rf  /usr/share/mysql
rm –rf  /usr/lib64/mysql
rm -rf  /var/lock/subsys/mysql

1.4. 手工删除/etc/my.cnf

rm -rf /etc/my.cnf

1.5. 再次检查是否已安装mysql,如果有,请重复上面步骤删除之。

find / -name mysql
rpm -qa|grep -i mysql

Linux(Centos6.5)下rpm方式安装MySQL_其他_04


2. 安装MySQL5.7

上传以下mysql安装文件:

mysql-community-client-5.7.27-1.el6.x86_64.rpm
mysql-community-server-5.7.27-1.el6.x86_64.rpm
mysql-community-common-5.7.27-1.el6.x86_64.rpm
mysql-community-libs-5.7.27-1.el6.x86_64.rpm


由于存在各种依赖关系,安装顺序为:

1)rpm -ivh mysql-community-common-5.7.27-1.el6.x86_64.rpm
2)rpm -ivh mysql-community-libs-5.7.27-1.el6.x86_64.rpm
3)rpm -ivh mysql-community-client-5.7.27-1.el6.x86_64.rpm
4)rpm -ivh mysql-community-server-5.7.27-1.el6.x86_64.rpm

Linux(Centos6.5)下rpm方式安装MySQL_MySQL_05
Linux(Centos6.5)下rpm方式安装MySQL_重启_06
Linux(Centos6.5)下rpm方式安装MySQL_MySQL_07

仍然报错,需安装perl(未报错,请忽略此步骤):
Linux(Centos6.5)下rpm方式安装MySQL_linux_08
Linux(Centos6.5)下rpm方式安装MySQL_MySQL_09

如图,安装完成!


3. 启动MySQL
#查看mysql状态
service mysqld status
# 启动mysql
service mysqld start
# 停止mysql
service mysqld stop
# 重启mysql
service mysqld restart

3.1. 启动报错

3.1.1. 第一种启动报错
 [root@localhost user]# service mysqld start

Linux(Centos6.5)下rpm方式安装MySQL_linux_10
增大日志文件mysqld.log的rwx权限:

chmod 777 /var/log/mysqld.log

Linux(Centos6.5)下rpm方式安装MySQL_其他_11

【解决】依次执行以下命令即可:

rm -fr /var/lib/mysql/*  
rm /var/lock/subsys/mysqld   
killall mysqld

重启mysql服务:

service mysqld restart

Linux(Centos6.5)下rpm方式安装MySQL_linux_12

3.1.2. 第二种启动报错
[root@localhost user]# service mysqld start

Linux(Centos6.5)下rpm方式安装MySQL_linux_13
注:第一次启动过程会初始化一些东西。

再次启动mysql:

[root@localhost user]# service mysqld start

Linux(Centos6.5)下rpm方式安装MySQL_mysql_14


4. 修改MySQL密码

(1)关闭MySQL服务:

service mysqld stop

(2)在配置文件/etc/my.cnf任意行(新一行)中加入指令:skip-grant-tables

vi /etc/my.cnf

注:my.cnf文件目录可通过“find / -name my.cnf”命令查找。

(3)然后启动服务:

service mysqld start

(4)登录MySQL,不需要输入密码直接回车即可
Linux(Centos6.5)下rpm方式安装MySQL_重启_15
(5)修改密码

update mysql.user set authentication_string=password('1234') where user='root';
flush privileges; 

Linux(Centos6.5)下rpm方式安装MySQL_linux_16

(6)最后,注释掉配置文件/etc/my.cnf中添加的skip-grant-tables

vi /etc/my.cnf

(7)重启mysql服务:

service mysqld restart

Linux(Centos6.5)下rpm方式安装MySQL_linux_17

(8)登录后正常操作MySQL会报错
Linux(Centos6.5)下rpm方式安装MySQL_重启_18

解决方式如下(登录mysql后执行):

8.1)MySQL版本5.7以下(不含5.7)版本:

SET PASSWORD = PASSWORD('1234'); 
flush privileges; 

8.2)MySQL版本5.7+(含5.7)版本:

ALTER USER USER() IDENTIFIED BY '1234';
flush privileges; 

(9)如果继续报错:
Linux(Centos6.5)下rpm方式安装MySQL_linux_19
修改MySQL密码安全策略:

mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

修改密码:

mysql> ALTER USER USER() IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Linux(Centos6.5)下rpm方式安装MySQL_其他_20


5. 修改MySQL字符集等配置(初级配置)

(1)编辑配置信息

vi /etc/my.cnf

注: 以下红色字体建议都配置。
Linux(Centos6.5)下rpm方式安装MySQL_其他_21

附文本:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
#设置3306端口
port = 3306 
# 主服务器唯一ID(一般取IP最后一段) 
server-id=1
# 设置mysql的安装目录
basedir=/usr/local/mysql57
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql57/data
# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 分组group_cocat函数最大长度,默认为1024
group_concat_max_len=102400
# 最大数据包大小(通信缓冲区的最大长度)
max_allowed_packet=102400
# 最大允许的数据包大小(执行大数据插入等操作需要配置)
max_allowed_packet=10000M

# 取消mysql表名大小写限制(0:区分,1:不区分)
lower_case_table_names=1

# 设置时区(Idea连接mysql需要设置)
default-time-zone='+08:00'

# 必须的配置(支持group by)
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

针对如上设置的pid-file文件夹路径:建议自行创建,并授权:

# mkdir -p /var/run/mysqld
# chown mysql.mysql /var/run/mysqld/

(2)保存后,重启mysql服务:
service mysqld restart
Linux(Centos6.5)下rpm方式安装MySQL_mysql_22
(3)查看mysql字符集
show variables like ‘%char%’;
Linux(Centos6.5)下rpm方式安装MySQL_mysql_23

6. 开启远程访问权限

6.1. 开启远程访问权限

授权语句(需root用户登录mysql后授权):

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
FLUSH PRIVILEGES;

权限变化如下图:
Linux(Centos6.5)下rpm方式安装MySQL_linux_24
辅助语句(一般不用):
use mysql;
update user set host = ‘%’ where user = ‘root’;
select user,host from mysql.user;


6.2. 开启防火墙端口3306

(1)修改防火墙配置,添加如下代码,其中 3306 是要开放的端口号,然后重新启动linux的防火墙服务:

vi /etc/sysconfig/iptables

要添加的代码:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

附全文 :

==========================================================================
 1 # Firewall configuration written by system-config-firewall
 2 # Manual customization of this file is not recommended.
 3 *filter
 4 :INPUT ACCEPT [0:0]
 5 :FORWARD ACCEPT [0:0]
 6 :OUTPUT ACCEPT [0:0]
 7 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 8 -A INPUT -p icmp -j ACCEPT
 9 -A INPUT -i lo -j ACCEPT
10 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
11 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
12 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
14 -A INPUT -j REJECT --reject-with icmp-host-prohibited
15 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
16 COMMIT
==========================================================================

(2)重启防火墙服务:

service iptables restart

Linux(Centos6.5)下rpm方式安装MySQL_MySQL_25


7. 附:主机远程连接MySQL常见报错

注: 这里使用Navicat Premium软件远程连接测试。

7.1. 报错一(10060):防火墙端口未开启

Linux(Centos6.5)下rpm方式安装MySQL_mysql_26

7.2. 报错二(1045):远程授权密码与实际连接密码不相符

Linux(Centos6.5)下rpm方式安装MySQL_mysql_27
到此,安装完成!!!