1. 卸载MySQL
1.1. 卸载MySQL
ps -ef|grep mysql
kill -9 xxx
1.2. 删除文件
find / -name mysql
rm -rf xxx
find / -name my.cnf
rm -rf /etc/my.cnf
2.下载压缩包
可以选择适合的版本下载,官方网站下载地址:
https://downloads.mysql.com/archives/community/
这里选择的是版本 mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
也可以使用tar包下载,右键复制链接地址使用wget下载。
3. 安装步骤
3.1. 获取mysql 安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
3.2. 解压
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local
mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql
3.3. 增加用户
groupadd mysql
useradd -g mysql mysql
3.4. 创建数据库存储数据文件并授权
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/
chmod 755 /usr/local/mysql/data/
4. 配置MySQL
4.1. 创建配置文件
touch /etc/my.cnf
vim /etc/my.cnf
4.2. 编辑配置文件
[client]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysql.pid
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql.err
5. 初始化MySQL
5.1. 初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
export defaultmysqlpwd=`grep 'root' /usr/local/mysql/data/mysql.err | awk -F"root@localhost: " '{ print $2}' `
5.2. 创建命令快捷方式并启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
5.3. 修改初始密码
/usr/local/mysql/bin/mysql -uroot -p${defaultmysqlpwd} -e "alter user root@'localhost' identified by 'root'" --connect-expired-password
如果没有报错,基本安装就成功了。
6. 测试
6.1. 进入命令行
mysql -u root -p
xxx
如果报错 -bash: mysql: command not found
在 /usr/bin 添加命令快捷方式
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
6.2. navicat 链接测试
需要授权远程访问:
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
7. 重置密码
先停止MySQL服务然后在 /etc/my.cnf 下添加
skip_grant_tables=1
然后启动mysql 进入命令行重置密码
update mysql.user set authentication_string=password('root') where user='root' and host='localhost';
flush privileges;
命令:flush privileges; #刷新授权列表
注意:通过执行“flush privileges;”可使授权表立即生效,对于正常运行的MySQL服务,也可以用上述方法来修改密码,不用重启服务。本例中因为是恢复密码,最好重启MySQL服务程序,所以上述“flush privileges;”操作可跳过。