一、卸载
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
- 如果客户端连接虚拟机报错
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服务了。
- 设置开机自动启动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