Ubuntu18.04:MySQL: 5.7安装与卸载并配置远程登录(服务器装Mysql5.7一条龙服务)

UbuntuMySQL: 5.7安装与卸载

卸载

sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
sudo rm -rf /etc/mysql/  /var/lib/mysql    #很重要
#清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
sudo apt autoremove
sudo apt autoclean

安装

1 sudo apt-get install mysql-server
2 sudo apt-get install mysql-client
3 sudo apt-get install libmysqlclient-dev

使用:

  1. 启动服务(我看也有sudo service mysql start来启动的)

    sudo /etc/init.d/mysql start
    #或
    sudo service mysql start
    
  2. 登录

    mysql5.7在我这个版本中默认是免密登录,是非常不安全的,必须设置密码登录

    用以下指令可以看到可以默认设置中的用户登录的用户名密码,复制用户名密码进行登录

    mysql -u 用户名 -p
    
    #输入密码
    

     在MySQL 5.7password字段已从mysql.user表中删除,新的字段名是“authenticalion_string”.

        先检查一下rootplugin字段是否为mysql_native_password

    use mysql;
    select user, plugin from user;
    

        这是我现在的值(开始的时候我的root的plugin字段就是’auth_socket‘ 修改语句“

    update user set plugin='mysql_native_password' where user='123456';
    
    +------------------+-----------------------+
    | user             | plugin                |
    +------------------+-----------------------+
    | root             | mysql_native_password |
    | mysql.session    | mysql_native_password |
    | mysql.sys        | mysql_native_password |
    | debian-sys-maint | mysql_native_password |
    +------------------+-----------------------+
    
    1. 修改密码
    update user set authentication_string=password('newPwd') where user='root';
    flush privileges;  #刷新mysql权限
    
    1. 新密码登录
    1 mysql -u root -p
    2 #输入密码即可
    

配置远程登录

在这里我发现虽然给root设置了密码,但是还是可以直接免密登录,所以问题并不是出在这里

通过一些途径我知道数据库的监听端口虽然是3306可是仅限制在127.0.0.1本地访问以下是解决办法

  1. 首先修改配置文件,因为5.7版本不会生成my.cnf文件,他的配置文件是vim /etc/mysql/mysql.conf.d/mysqld.cnf

    并把bind-address注释掉

#不适用本版本(mysql5.7)vi /etc/mysql/my.cnf  
vim /etc/mysql/mysql.conf.d/mysqld.cnf
/etc/init.d/mysql restart # 重启

为需要远程登录的用户赋予权限

  1. 新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option; 
flush privileges;

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。

  1. 支持root用户允许远程连接mysql数据库

    update user set host="%" where user="root"; //目的就是把用户的host修改为%,不是localhost就能远程访问了
    
我会写代码+代码改变世界=我会改变世界! 为什么要改变世界? 如果无法改变世界,那么,世界就会改变我......
原文地址:https://www.cnblogs.com/chougoushi/p/13529971.html