Linux安装MySQL
一、先卸载旧版MySQL
== ps:没有安装过MySQL就跳过该步骤 ==
第一种、RPM包安装方式的MySQL卸载
- 关闭MySQL服务
[root@hwj .]# service mysql stop
Shutting down MySQL.. SUCCESS!
[root@hwj /]# service mysql status
ERROR! MySQL is not running
- 删除MySQL对应的文件夹
查找文件
[root@hwj /]# find / -name mysql
/home/mysql
/etc/rc.d/init.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/data/mysql
删除文件
[root@hwj /]# rm -rf /var/lib/mysql
[root@hwj /]# rm -rf /var/lib/mysql^C
[root@hwj /]# rm -rf /var/lib/mysql/mysql
[root@hwj /]# rm -rf /usr/bin/mysql
[root@hwj /]# rm -rf /usr/lib64/mysql
[root@hwj /]# rm -rf /usr/share/mysql
[root@hwj /]# rm -rf /usr/local/mysql
[root@hwj /]# rm -rf /usr/local/mysql/bin/mysql
[root@hwj /]# rm -rf /usr/local/mysql/data/mysql
- 检查MySQL组件。
[root@hwj /]# rpm -qa | grep -i mysql
有组件
mysql-libs-5.1.73-5.el6_6.x86_64
删除组件
rpm -ev MySQL-devel-5.6.23-1.linux_glibc2.5
4,删除mysql用户及用户组
查看
[root@hwj /]# more /etc/group | grep mysql
mysql:x:1000:
[root@hwj /]# more /etc/passwd | grep mysql
mysql:x:998:1000::/home/mysql:/bin/bash
[root@hwj /]# more /etc/shadow | grep mysql
mysql:!!:17438::::::
删除
[root@hwj /]# userdel mysql
[root@hwj /]# groupdel mysql
验证
[root@hwj /]# more /etc/passwd | grep mysql
[root@hwj /]# more /etc/group | grep mysql
[root@hwj /]# more /etc/shadow | grep mysql
以上就完全删除了
第二种、二进制包/源码安装方式的MySQL卸载
- 检查MySQL服务并关闭服务进程。
检查mysql进程
[root@hwj /]# ps -ef | grep mysql
mysql 37160 1 0 22:35 pts/0 00:00:02 /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=hwj.err --pid-file=/usr/local/mysql/data/hwj.pid --port=3306
root 39367 36584 0 23:39 pts/0 00:00:00 grep --color=auto mysql
杀死进程,关闭服务器
kill -9 37160
- 彻底删除mysql安装目录
查找文件
[root@hwj /]# find / -name mysql
/home/mysql
/etc/rc.d/init.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/data/mysql
使用rm -rf 命令删除以上的文件
- 删除一些配置文件
[root@hwj /]# rm -f /etc/my.cnf
[root@hwj /]# rm -rf /etc/init.d/mysql.server
- 删除MySQL用户以及用户组
[root@hwj /]# userdel mysql
[root@hwj /]# id mysql
id: mysql: no such user
一、下载上传解压MySQL安装包
- 官网下载安装包或使用命令下载
[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
- 使用ftp工具把安装包上转到服务器
- 解压、并移动到对应的目录
解压
[root@hwj software]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
移动文件
[root@hwj software]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
二、安装配置MySQL
1、添加mysql用户组和mysql用户
查看是否有mysql用户组和mysql用户,有就不要添加,没有就添加
[root@hwj /]# cat /etc/group | grep mysql
[root@hwj /]# cat /etc/passwd |grep mysql
添加mysql用户组和mysql用户
[root@hwj /]# groupadd mysql
[root@hwj /]# useradd -r -g mysql mysql
验证是否添加成功
[root@hwj /]# cat /etc/passwd |grep mysql
mysql:x:975:1001::/home/mysql:/bin/bash
[root@hwj /]# cat /etc/passwd |grep mysql
mysql:x:975:1001::/home/mysql:/bin/bash
2、修改权限
创建data 文件
[root@hwj software]# mkdir /usr/local/mysql/data
[root@hwj software]# cd /
更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
[root@hwj /]# chown -R mysql:mysql /usr/local/mysql
[root@hwj /]# chmod -R 755 /usr/local/mysql
3、初始化数据库
[root@hwj /]# cd /usr/local/mysql/bin/
[root@hwj bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
如果提示下面信息
解决方法:
a、使用df命令查看内存大小,如果内存满了,就删除以下无用的日志文件,重启mysql服务
b、可能/usr/local/mysql/data/mysql.pid文件没有写的权限
给予权限,执行
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
然后重新启动mysqld!
c、查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
#结束进程
kill -9 PID
#启动服务
/usr/local/mysql/support-files/mysql.server start
d、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
如果mysql的数据目录/data看看存在mysql-bin.index,就删除。
e、可能/etc/my.cnf配置文件错误
请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
f、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
g、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
h、mysqk.sock.lock文件出错
查看报错日志
cat /use/local/mysql/hwj.err
删除mysql.sock.lock
cd /tem
rm -rf mysql.sock.lock
然后重启mysql服务
4. 添加软连接,并重启mysql服务
[root@hwj /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@hwj /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@hwj /]# service mysql restart
5. 登录mysql,修改密码(密码是初始化数据库生成的密码)
[root@hwj /]# mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');
6. 开放远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
7. 开机自启
[root@hwj init.d]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@hwj init.d]# chmod +x /etc/init.d/mysqld
[root@hwj init.d]# chkconfig --add mysqld
[root@hwj init.d]# chkconfig --list