MySQL下载官网:
https://downloads.mysql.com/archives/community/
文章使用的MySQL版本下载地址:
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
一、卸载旧的mysql
1、删除MySQL的安装文件
[root@www ~]# find / -name mysql
/usr/local/env/mysql
/usr/local/env/mysql/mysql
/usr/local/env/mysql/mysql/bin/mysql
/usr/local/env/mysql/mysql/data/mysql
rm -rf /usr/local/env/mysql # 删除
2、删除MySQL的配置文件
rm -rf /etc/my.cnf
# 删除 /etc/init.d/ 下跟MySQL有关的服务,包括mysql、mysqld文件
rm -rf /etc/init.d/mysql
rm -rf /etc/init.d/mysqld
3、删除MySQL用户和用户组
[root@www ~]# userdel mysql
userdel: user 'mysql' does not exist
到此,卸载完成!
二、安装mysql
1、上传安装包
cd /usr/local/
tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.41-linux-glibc2.12-x86_64 mysql
cd mysql
2、添加用户组mysql和用户mysql,并将其添加到mysql用户组中
groupadd mysql
useradd -r -g mysql mysql
useradd -r 参数表示mysql用户是系统用户,不可用于登录系统。
useradd -g 参数表示把mysql用户添加到mysql用户组中。
3、检查是否安装了 libaio
rpm -qa | grep libaio
如果没有的话,使用下面命令安装
yum install libaio
4、配置 my.cnf 文件
vim /etc/my.cnf
[mysqld]
port=3306
# 安装目录
basedir=/usr/local/mysql
# 数据存放目录
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
# 允许最大连接数
max_connections=200
# 服务端使用的字符集
character-set-server=utf8
collation-server=utf8_general_ci
# 解决group by问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 表名忽略大小写
lower_case_table_names=1
[client]
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid
5、创建mysql、data、logs文件夹
mkdir /usr/local/mysql/data
mkdir -p /var/log/mysql
touch /var/log/mysql/error.log
6、将mysql目录的所属用户和组改为mysql
chown -R mysql:mysql /usr/local/mysql
7、初始化 mysqld 生成初始化密码
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
此时,控制台打印如下:
最后: i;lknXwO;5,s 就是初始化之后的密码。
也可以通过命令查找:
grep password /var/log/mysqld.log
或者修改配置文件 vim /etc/my.cnf ,给 mysqld 项增加 skip-grant-tables 跳过登录验证
[mysqld]
skip-grant-tables
然后启动mysql,不用输入密码,直接回车就能登录
service mysqld start
mysql -uroot -p
三、修改mysql密码
1、使用初始化的密码,首次登录
mysql -uroot -p
use mysql;
update user set authentication_string=PASSWORD('123456') where User='root';
# 允许远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
四、mysql设置开机启动
cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
修改 mysqld 文件,在 $bindir/mysqld_safe 后面加上 --user=mysql
vim /etc/rc.d/init.d/mysqld
将 mysqld 服务加入到系统服务
chkconfig --add mysqld
chkconfig mysqld on # 设置开机自启
service mysqld start # 启动mysql
住:因为 mysqld 不是本地服务,是我们后加的,所以想要设置开机启动务不能用 systemctl enable mysqld ,systemctl 命令只能操作正常安装在系统的本地服务,所以要通过 chkconfig 命令来实现开机启动。
五、配置环境变量
1、打开 /etc/profile 配置文件,添加以下内容:
# mysql环境变量
export PATH=$PATH:usr/local/mysql/bin
2、执行命令,使其生效
source /etc/profile
echo $PATH # 校验是否成功
出现了 /usr/local/mysql/bin 表示已经配置成功。
报错解决 ERROR 2002 (HY000): Can’t connect to local MySQL server through
find / -name mysql.sock
查找到的 sock地址,软连接到 /tmp/mysql.sock
ln -s xxx /tmp/mysql.sock