目录
一、准备
若是安装Window10的mysql请查看windows 10安装Mysql5.7.31,并使用navicat连接解决1862错误_shien00000xu的博客-CSDN博客:
1、检查是否已安装过mariadb,若有便删除(linux系统默认自带)
[root@xxh/]# rpm -qa | grep mariadb
[root@xxh/]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
2、检查是否之前安装过Mysql,如果有则执行下面命令删除
[root@xxh/]# rpm -qa | grep mysql
[root@xxh/]# rpm -e –-nodeps mysql-libs-5.1.52.x86_64
3、检查mysql组和用户是否存在,如无创建:
[root@xxh~]# cat /etc/group | grep mysql
[root@xxh~]# cat /etc/passwd |grep mysql
[root@xxh~]# groupadd mysql
[root@xxh~]# useradd -r -g mysql mysql
二、Mysql文件下载
1、到官网直接下载
https://downloads.mysql.com/archives/community/
选择你需要的版本,Mysql5.7.24-31都可以。
2、上传
使用ssh工具上传至系统的home目录下。
3、解压
使用tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz(依据实际文件名即可)
更该文件名为mysql
[root@xxh~]#mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
实际效果如下:
三、配置并安装
1、赋权
[root@xxh~]#chown -R mysql:mysql mysql
其中mysql:mysql是用户、组,最后一个mysql是文件夹。
2、安装和初始化MySQL数据库
进入 mysql目录
[root@xxh~]# cd /home/mysql/bin
[root@xxh bin]# ./mysql_install_db --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/
执行完成后会出现5个[Warning],暂时不用管。
[root@xxh bin]# cd /home/mysql
[root@xxh mysql]#cp -a ./support-files/mysql.server /etc/init.d/mysqld
并修改mysqld里的 basedir和datadir
[root@xxh~]# vim /etc/init.d/mysqld
3、配置Mysql
(1)检查是否配置my.cnf,若有删除
[root@xxh~]# rm -rf /etc/my.cnf
(2)在mysql的bin目录下执行以下命令
[root@xxh bin]#./mysqld_safe --user=mysql &
执行后出现success!字样
Stating MySQL SUCCESS!
[1]+ 完成 ./mysqld_safe --user=mysql
(3)重新启动mysql
(4)配置开机检查
chkconfig --level35 mysqld on或使用systemctl enable mysqld 让其开机自启动。
(5)初始化密码
在bin执行以下命令:cat /root/.mysql_secret,最后就是初始密码
(6)重置密码
在bin使用命令:[root@xnh mysql]# ./mysql -uroot -p
输入刚刚看到的密码,即可以登录(若不能登录,请看第四节)
mysql> use mysql;
mysql> SETPASSWORD = PASSWORD('root');
mysql>flush privileges;
mysql>use mysql;
添加远程访问%是指没有限制。
mysql>update user set host = '%' where user = 'root';
(7)配置防火墙上的端口,使mysql的3306端口通过
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #重新载入
firewall-cmd --zone=public --query-port=3306/tcp #查看是否生效
(8)配置环境变量
vim /etc/profile
在最后增加一行:
export PATH=$PATH:/home/mysql/bin
四、常见问题解决
1、root密码无法登录
在/etc下新建my.cnf,把skip-grant-tables加入,你也可以只在[mysqld]下只写这一条,其它不写。
[mysqld]
port = 3306
#需要填写你的实际目录
basedir=/home/mysql
datadir=/home/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-grant-tables
[mysql]
default-character-set=utf8
重启服务器
[root@xnh home]# service mysqld restart
之后,使用在bin执行命令:
[root@xnh mysql]# ./mysql -uroot -p
出现让输入密码时,可以直接回车,因为skip-grant-tables已经跳过验证密码了。
再执行如下命令:
#将数据库切换至mysql库
mysql> USE mysql;
#修改密码
mysql> update user set authentication_string=PASSWORD('123456@ABC') where user='root';
#刷新MySQL权限相关的表
mysql> flush privileges;
mysql> exit;
2、远程登录时报错
配置好账号、密码后,会出现报错:MYSQL(5.7) 报错:1862 your password has expired…
此时参考我的上个文章中的第 2.1节(windows 10安装Mysql5.7.31,并使用navicat连接解决1862错误_shien00000xu的博客-CSDN博客)。