一.远程连接数据库
- 使用工具:Navicat
- 服务器环境:CentOS7,Mysql5.7.21
- 确保服务器mysql服务器安装好
- 确保服务器数据库的服务开启:service mysql start
- 查看服务器mysql服务有没有开启:ps -ef | grep mysql
- 进入Mysql : mysql -h连接的主机的ip -u数据库用户 -p输入密码(第一次服务器安装好Mysql后会自动生成密码,查看密码:cat /var/log/mysqld.log | grep password --> 找到 root@localhost: -->密码:gszIWGBwh4_x)
-
修改密码:详见此链接。以后连接数据库先mysql -h连接的主机的ip -u数据库用户 -p,然后根据提示输入密码,防止密码被盗取
- 进入后开启远程链接服务,Mysql里面的命令要用 “ ; ”结尾才能执行
- (要修改密码后,不然会提示修改密码)先show databases;,查看有什么数据库
- 进入mysql数据库:use mysql;
- 然后 show tab; 看到最下面的user 表
- 然后 select Host,User from user \G; 查看表的数据,找到user=root的数据: Host:localhost User:root
- 修改这个数据的Host:update user set host='%' where Host = "localhost" and User = "root"; ('%'表示所有ip都可以连接)
- 在Mysql里面刷新:flush privileges; 或者在远程服务器重启数据库:service mysql restart
- Mysql远程连接服务开启后,在本地打开Navicat
- 点击左上角的连接,选择Mysql
- 输入连接名,服务器的ip,用户名,密码
- 点击连接测试成功后,点确认。
二.新建mysql用户:
- 在mysql中:create user 'jamin'@'%' identified by '密码';
- 若提示密码太简单不安全,参考:详见此链接
- 新建用户还不够权限
- 赋予用户所有权限:grant all privileges on *.* to 'jamin'@'%' identified by 'jamin用户的密码' with grant option;
- 仅赋予查询、插入、更新、删除等权限:grant select , update, delete privileges on *.* to 'jamin'@'%' identified by 'jamin用户的密码' with grant option;
- 刷新:flush privileges;
- 收回权限用户所有权限:revoke all privileges on *.* FROM jamin;
三.密码忘记了怎么办?
- 在远程服务器上:sudo vim /etc/my.cnf
- 最后面写入:skip-grant-tables
- 退出保存后重启mysql服务:sudo service mysqld restart
- mysql -h连接的主机的ip -u数据库用户 -p 进入数据库,按enter直接进入
- 更新密码不能用 set password = password('123456'); 了。(新安装数据库的时候可以用这个)
- 先进入mysql数据库:use mysql;
- 接着用这个命令更新密码:update user set authentication_string=password('123456') where user='数据库账号';
- 刷新:flush privileges;
- 注释掉sudo vim /etc/my.cnf 中的skip-grant-tables
四.顺便打开genelog日志功能。
- 有什么用?在本地开发的时候可以记录输入的mysql命令,便于查看曾经在mysql输入过哪些命令?
- 开启:进入mysql中输入:set global general_log_file="/tmp/general.log"; (这里用的临时文件夹)
- 然后:set global general_log=on;开启 (关闭日志:set global general_log=off;)
- 查看:在服务器中输入:sudo tail /tmp/general.log