linux环境CentOS7安装mysql5.6,远程访问及忘记密码常见问题解决【亲测有效】

一,卸载MySql

1、查看系统中是否已安装mysql

rpm -qa |grep mysql


注:返回空值说明没有安装mysql,在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。

2、查看mariadb版本

rpm -qa|grep -i mariadb

3、卸载mariadb

rpm -e --nodeps 软件名称

4、确认是否卸载完成

rpm -qa|grep -i mariadb

二,安装MySql

1、下载安装包文件

wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

注:如果显示没有wget命令,执行下方代码下载,遇到y/n输出y回车;

下载完成后执行上方代码下载安装包文件

sudo yum install wget

2、安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el6-5.noarch.rpm

安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。


执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。

3、安装mysql

yum install -y mysql-server
chown mysql:mysql -R /var/lib/mysql
mysqld --initialize  	

4、查看是否安装成功

rpm -qa | grep mysql

三,常用命令、设置密码

常用命令

systemctl start mysqld.service 		#启动 mysql
systemctl restart mysqld.service 	#重启 mysql
systemctl stop mysqld.service 		#停止 mysql
systemctl enable mysqld.service 	#设置 mysql 开机启动【重启生效】
systemctl disable mysqld			#关闭MySQL开机启动【重启生效】
ps -ef | grep -i mysql				#查看mysql进程

mysql常用文件路径:

/etc/my.cnf 这是mysql的主配置文件
/var/lib/mysql mysql 数据库的数据库文件存放位置
/var/logs/mysqld.log 数据库的日志输出存放位置

设置密码
mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码

# systemctl start mysqld.service
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("123456") where User='root';
mysql> flush privileges; 

四,远程访问

准备工作

Linux是一个安全级别很高的操作系统,所以对外的访问是需要权限的。如端口。默认只开放了80和22端口

1,打开防火墙,使用 ss 命令检查开放端口,建议-ltn在命令中使用选项以查看简洁且相关的输出。让我们看一个关于我们的测试系统的例子。(这里需要退出mysql)

quit			#退出mysql
sudo ss -ltn 	#查看端口

我们可以看到我们的服务器正在侦听端口 80、3306 上的连接。这些是众所周知的与 HTTP 和 MySQL 相关的端口。

2,检查 ufw 防火墙中打开了哪些端口

你应该记住一个重要的警告。在我们的本地系统上使用ss或者nmap localhost命令时,我们绕过了防火墙。实际上,这些命令显示处于侦听状态的端口,但这并不一定意味着端口对 Internet 开放,因为我们的防火墙可能拒绝连接。使用以下命令检查 ufw 防火墙的状态。

sudo ufw status verbose

如果没有ufw命令,执行下方代码后再执行sudo ufw status verbose
sudo yum install ufw

如果显示没有可用软件包执行下方代码再执行上面的两个
    安装epel源
    sudo yum install epel-release
    清理缓存
    yum clean all
    重新生成缓存
    yum makecache
    升级yum源
    yum uptade

从输出中,我们可以看到 ufw 拒绝传入连接。由于端口 3306 尚未添加为例外,因此 MySQL 无法接收传入连接,尽管ss并nmap报告它们处于侦听状态。

3,为这些端口添加例外。

sudo ufw allow 3306/tcp

如果80没开,同样操作
sudo ufw allow 80/tcp

我们可以再次检查 ufw 的状态,以查看端口现在是否已打开。

开启远程访问

mysql> grant all on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;

确认:查看user对应root的host是否为%

select host,user from user;

测试远程访问

可以用Navicat输入mysql> grant all on *.* to 'root'@'%' identified by '123456';这个命令对应的账号密码,

账号root 密码123456

ip根据自身ip填写(可以使用ifconfig查看)

如果不行可以关闭防火墙试试 systemctl stop firewalld(亲测有效)

常见问题:

mysql修改密码后无法登陆

systemctl stop mysqld	
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql 
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
systemctl restart mysqld	


若启动报错,`ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)`
查看mysql是否已启动过,

ps -ef |grep mysql查看,若有进程存在,

kill pid 后重启mysql
mysql -uroot -p
Enter password: <输入新设的密码newpassword>

防火墙命令

操作

指令

备注

查看防火墙状态

systemctl status firewalld / firewall-cmd --state

暂时关闭防火墙

systemctl stop firewalld

永久关闭防火墙(禁用开机自启)

systemctl disable firewalld

下次启动,才生效

暂时开启防火墙

systemctl start firewalld

永久开启防火墙(启用开机自启)

systemctl enable firewalld

下次启动,才生效

开放指定端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

需要重新加载生效

关闭指定端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

需要重新加载生效

立即生效(重新加载)

firewall-cmd --reload

查看开放端口

firewall-cmd --zone=public --list-ports


 

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值