一、卸载
1、使用以下命令查看当前安装mysql情况

rpm -qa|grep -i mysql
2、停止mysql服务、删除之前安装的mysql(如果没有包,直接进入第三步)

删除命令:rpm -e –nodeps 包名

rpm -ev MySQL-client-5.5.25a-1.rhel5
rpm -ev MySQL-server-5.5.25a-1.rhel5
如果提示依赖包错误,则使用以下命令尝试

rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:

rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

find / -name mysql

找到

/var/lib/mysql

/var/lib/mysql/mysql

/usr/lib64/mysql

删除对应的mysql目录

rm -rf /var/lib/mysql

rm -rf /var/lib/mysql

rm -rf /usr/lib64/mysql

二、安装

1、yum源安装mysql

yum clean all
yum repolist
sudo yum install -y mysql-server
启动mysql服务 sudo service mysqld start
进入mysql 第一次进入不需要密码 mysql -u root -p 两次回车进入
use mysql;
delete from user where user=’’;
update user set host=’%’ where host=‘localhost’;
update user set password=PASSWORD(‘123456’) where user=‘root’;
flush privileges;//刷新权限
退出exit;
重启mysql服务 service mysqld restart

2、下载安装包的方式

1、下载


#解压

tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

#复制解压后的mysql目录

cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql 把解压后的文件夹复制到/usr/local/mysql

3、添加用户组和用户(在属于以下两个命令时,都报已存在)

#添加用户组

groupadd mysql

#添加用户mysql 到用户组mysql

useradd -g mysql mysql

4、安装
cd /usr/local/mysql/data 进入到安装目录的data文件夹

mkdir /mysql 在data文件夹下创建mysql文件夹

chown -R mysql:mysql ./

./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql

安装时的一些错误

-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 没有那个文件或目录

解决: yum -y install perl perl-devel

Installing MySQL system tables…/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决:yum -y install libaio-devel

6. 把安装目录下mysql.server复制到系统目录
cp support-files/mysql.server /etc/init.d/mysqld 

chmod 755 /etc/init.d/mysqld 授权

cp support-files/my-default.cnf /etc/my.cnf

#修改启动脚本

vi /etc/init.d/mysqld

#修改项:

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/mysql

#启动服务

service mysqld start

映射一个链接到/usr/bin目录下,这样就能用mysql指令了

ln -s /usr/local/mysql/bin/mysql /usr/bin

#测试连接

./mysql/bin/mysql -uroot 进入到安装目录下的/bin/mysql目录,输入 -uroot即可进入mysql (不用输入密码是因为root还没有设置密码)

use mysql;
delete from user where user='';
update user set host='%' where host='localhost';
update user set host='%' where host='root';  //允许远程连接
                update user set password=PASSWORD('123456') where user='root';
                flush privileges;//刷新权限
                exit;  //退出

开放3306端口

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
                                                                                                                       
"/etc/sysconfig/iptables" 14L, 543C

注意:一定要加在后两行的前面。

重启防火墙:

[root@localhost ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
iptables:应用防火墙规则:                                 [确定]

重启mysql服务

service mysqld restart

登录

mysql -uroot  mysql
  1. 如果客户端连接虚拟机报错

Mysql连接错误:Lost connection to Mysql server at ‘waiting for initial communication packet’

在my.cnf(路径:/etc/my.cnf,/etc/mysql/my.cnf)配置文件中的[mysqld]区域添加skip-name-resolve,

即跳过mysql连接的DNS反向解析功能,这样能很好地提高mysql性能。在这种情况下,

就只能使用MySQL授权表中的IP来连接mysql服务了。
  1. 设置开机自动启动mysql服务
    1、将服务文件拷贝到init.d下,并重命名为mysql(查看是否存在,前面已经设置过,不存在执行)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2、赋予可执行权限

chmod +x /etc/init.d/mysqld

3、添加服务

chkconfig --add mysqld

4、显示服务列表

chkconfig --list

如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

chkconfig --level 345 mysqld on

5、重启电脑

reboot

6、验证

netstat -na | grep 3306