安装的版本MYSQL
版本:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
下载地址:https://dev.mysql.com/downloads/mysql/
- 完全卸载之前版本
1.使用以下命令查看当前安装mysql情况,查找以前是否装有mysql
rpm -qa|grep -i mysql
2.显示之前安装了:例如
MySQL-client-5.5.25a-1.rhel5
MySQL-server-5.5.25a-1.rhel5
3.停止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
查找之前老版本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
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
- 安装MYSQL
卸载系统自带的Mariadb数据库
检查是否安装过mariadb
rpm -qa|grep mariadb
如果有那么久卸载掉
rmp -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
创建mysql用户组和mysql用户
groupadd mysql
创建一个用户名为mysql的用户并添加到mysql组里面
useradd -g mysql mysql
在/usr/local目录下解压mysql压缩包
cd /usr/local
tar zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
解压后将它重命名为mysql
mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
修改mysql目录的权限
进入到mysql目录下
把该目录下的文件和目录属主修改为mysql用户
chown -R mysql .
把该目录下的文件和目录所属的组改为mysql组
chgrp -R mysql .
在mysql目录下新建一个data目录
mkdir data
初始化mysql
进入bin目录
cd /usr/local/mysql/bin
执行
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化成功之后窗口会有一个root用户的初始密码:记下来
进入到mysql目录下
把该目录下的文件和目录属主修改为root用户
chown -R root .
把该目录下的data目录属主修改为mysql用户
chown -R mysql data
启动MySQL,并查看是否已启动成功
进入到support-files目录
[root@VM_0_3_centos support-files]# ./mysql.server start
会打印:
Starting MySQL.Logging to '/usr/local/mysql/data/VM_0_3_centos.err'.
. SUCCESS!
查看是否成功了
[root@VM_0_3_centos support-files]# ps aux | grep mysqld
root 14787 0.0 0.0 113252 1620 pts/1 S 09:57 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/VM_0_3_centos.pid
mysql 14872 0.3 9.1 1120592 172536 pts/1 Sl 09:57 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM_0_3_centos.err --pid-file=/usr/local/mysql/data/VM_0_3_centos.pid
root 15135 0.0 0.0 112644 964 pts/1 R+ 09:58 0:00 grep --color=auto mysqld
通过初始密码登录MySQL,并修改密码
在bin目录下执行:
[root@VM_0_3_centos bin]# ./mysqladmin -uroot -p password
Enter password: (刚刚初始化记录下来的密码)
New password: (设置的新密码)
Confirm new password: (确认新密码)
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
关闭MySQL服务,并查看是否关闭成功
./mysqladmin -uroot -p shutdown
查看状态:
ps aux | grep mysqld
设置开机自启
复制启动脚本到资源目录
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
增加mysqld服务控制脚本执行的权限
chmod +x /etc/rc.d/init.d/mysqld
将mysqld服务加入到系统服务
chkconfig --add mysqld
检查mysqld服务是否已经生效
chkconfig --list mysqld
日志:
ote: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
说明已经生效了
以后可以使用service命令控制mysql的启动和停止,命令为:service mysqld start和service mysqld stop,有可能执行的时候会报错,如下图
这是因为mysql默认安装在/usr/local目录下,如果安装在/usr/local目录下则会正常启动和关闭,不会报错。但是本次安装在自定义的/data目录下,此时需要修改/etc/init.d/mysqld文件,保存后退出
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
然后在执行service mysqld start启动命令,OK
配置全局环境变量
编辑/etc/profile文件
vi /etc/profile
增加代码:
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
保存退出
设置环境变量立即生效
source /etc/profile
设置远程主机登录
登录mysql
mysql -uroot -p
Enter password:
登录成功之后执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Aa123456' WITH GRANT OPTION;
exit;退出
开放3306端口
编辑iptables
vim /etc/sysconfig/iptables
然后增加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306-j ACCEPT
重启防火墙使配置生效
systemctl restart iptables.service
最后使用nevicat连接成功!恭喜您