博客
电影
宝箱
友链
关于
<
《刀锋》读后感,探索人生的意义
《政治经济学及赋税原理》读书笔记
>
Navicat远程连接Linux上MySql
作者:
Cifer
类别: 技术·运维
时间:2018-10-16 23:52:51
字数:2406
版权所有,未经允许,请勿转载,谢谢合作~
###前言 这本是件无比简单的事,因为屡次遇到几个相同的问题,因此记录下来,供来者参考。包括: <a href="#1">Centos7下MySql安装</a> <a href="#2">MySql创建用户、设置密码</a> <a href="#3">MySql密码忘记后重置</a> <a href="#4">Navicat远程连接MySql的方式</a> <i id="1"></i> ###Centos7下MySql安装 安装mysql安装mysql 5.7例子 下载源 安装源 安装mysql ``` wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm yum localinstall mysql57-community-release-el7-8.noarch.rpm yum install mysql-community-server ``` 查看状态 启动 重启 停止 ``` systemctl status mysqld systemctl start mysqld systemctl restart mysqld systemctl stop mysqld ``` <i id="2"></i> ###MySql创建用户、设置密码 mysql 5.7之前root没有默认密码,可以直接登录。而之后版本则需要在/var/log/mysqld.log日志中找到默认密码。 ``` head -20 /var/log/mysqld.log ``` 可以发现 A temporary password is generated for root@localhost: xxxx xxxx便是你的默认密码 进入MySql并修改默认密码,flush privileges;是为了刷新权限,可以理解为刷新缓冲,每次权限相关有修改都可以调用一次。 ``` mysql -u root -p set password for root@localhost = password('你的新密码'); flush privileges; ``` 为了安全,我们一般不会使用root账户,而是在创建自己的数据库之后,新建用户,并且把该数据库授权给该用户,比如: ``` CREATE DATABASE your_database_name; CREATE USER 'your_name'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL ON your_database_name.* TO 'username'@'localhost'; ``` 其中localhost是表示该用户只能从本地连接该数据库。还可以设置成IP,表示只有该IP可连接该数据库。设置成%表示所有机器都可使用该账户连接该数据库。出于安全需要,尽量使用localhost或特定IP。 <i id="3"></i> ###MySql密码忘记后重置 mysql忘记密码真是不少见,有时虽然密码是对的,却报错: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 此时只好重置密码。 因为不知道密码,所以我们无法修改密码,为此需要在mysql配置/etc/my.cnf 增加一行: ``` skip-grant-tables ``` 跳过密码,并重启mysql。 此时可以可以mysql进行授权: ``` mysql -uroot -p grant all privileges on your_database_name.* to 'your_name'@'localhost'; ``` 可能报错 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 原来还是“缓存问题”, 刷新后重复上述操作即可。 ``` flush privileges; ``` 甚至为了减小影响,重新创建用户,上述已讲,不再重复。 <i id="4"></i> ###Navicat远程连接MySql的方式 本例navicat版本为11.1.13,如果以下操作更旧版本不能成功,可考虑升级。 如果有允许远程登录的的账号,则直接在navicat选项“常规”: IP + 端口3306 + mysql username + mysql password 这时可能会因为服务器防火墙未对外开启3306端口而失败,需开启该端口并重启防火墙: ``` firewall-cmd --zone=public --add-port=3306/tcp --permanent systemctl restart firewalld.service ``` 可以成功!不过这样并不安全,并且也不适用于localhost权限的账户,不推荐上述方式,可恢复原样。 关闭对外3306端口并重启,顺便核对现已开启的对外端口 ``` firewall-cmd --permanent --zone=public --remove-port=3306/tcp systemctl restart firewalld.service firewall-cmd --zone=public --list-ports ``` 更好的方式是: navicat选项“常规”: 主机名localhost + 端口3306 + mysql username + mysql password 同时,选项“ssh” 勾选“使用ssh通道”: 主机IP + 端口22 + linux username + linux password
如果觉得有帮忙,您可以在本页底部留言。
相关推荐:
v2ray+ws+tls+cloudflare+nginx实现一台服务器两用
升级到php7.3与laravel5.8的问题记录
2核1G内存的服务器能承载多少人访问
Centos7+Nginx+PHP+MySQL搭建网站
Linux之新手村攻略
……
更多
<
《刀锋》读后感,探索人生的意义
《政治经济学及赋税原理》读书笔记
>
全部留言
我要留言
内容:
网名:
邮箱:
个人网站:
发表
全部留言