Ubuntu18.04 安装MySQL并创建新用户配置远程连接

本文讲解在自己虚拟机的Ubuntu18.04系统上安装MySQL数据库,并进行初始化配置和创建新用户并设置远程连接

一、环境准备:

1、VMware(我的是15)

2、Ubuntu18.04系统,已配置好网络环境

3、Ubuntu18.04已配置source源

二、查看系统是否存在MySQL环境

dpkg -l |grep mysql

无反应表明系统无MySQL环境,可正常安装

三、安装MySQL数据库

sudo apt install mysql-server

新装的Ubuntu18.04可能会出现如下报错:

需要根据提示执行:

sudo apt-get update --fix-missing

完成后再执行:sudo apt install mysql-server

四、检查MySQL是否安装成功

执行netstat -tab | grep mysql查看MySQL的socket是否为listen状态

netstat -tag|grep mysql

执行sudo systemctl status mysql.service查看MySQL active是否running

sudo systemctl status mysql.service

五、登录MySQL数据库

sudo mysql -u root -p

初始状态的MySQL是没有设置密码的,所以可以在输入密码那里可以不用输入密码直接登录

六、quit退出MySQL并对MySQL进行初始化操作

sudo mysql_secure_installation

#1 是否安装验证密码插件:NO
#2 输入要为root管理员设置的数据库密码:
        再次输入密码:
#3 删除匿名账户: yes
#4 是否禁止root管理员从远程登录:NO
#5 是否删除test数据库并取消对它的访问权限:YES
#6 是否刷新授权表,让初始化的设定立即生效:YES

尝试使用新设置的密码进行登录:

sudo mysql -u root -p

七、配置MySQL远程访问功能

#1  编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件:

将bind-addresses = 127.0.0.1 注释掉,保存退出

有的版本可能还会有mysql-bind-addresses = 127.0.0.1,也可以注释掉

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

#2  重启MySQL服务,使配置文件生效

sudo systemctl restart mysql-service

#3  再进入MySQL并使用mysql库

sudo mysql -u root -p
use mysql;

#4  查看user表的host和user字段

select host,user from user;

可以看到root对应的host是localhost,只允许本地连接,需要将对应host改成"%",表示允许所有ip远程连接,这里对于root账户一般可不开远程连接,一般新建账号再分配权限后开远程连接权限,我这里教程就先开远程权限了

#5  修改root用户远程访问权限

update user set host='%' where user='root';

#6  查看user表命令

select host,plugin,authentication_string from user;

(注:host为 % 表示不限制ip,localhost表示本机使用,plugin非mysql_native_password 则需要修改密码)

很明显,此时的root的plugin为auth_socket,所以需要修改密码。这里密码可以修改成原来一样的密码就行了

#7  修改用户密码命令:

alter user 'root'@'%' identified with mysql_native_password by 'new_password';

这里可能会报error1396的错误,原因是root用户已存在,解决办法是删除掉root用户,然后重新新增一个root用户

删除root用户

delete from user where user='root';

新增root用户

create user 'root'@'%';

这时我们看到authentication_string是空的,执行下面命令

alter user 'root'@'%' identified with mysql_native_password by 'new_password';

再次查看对应表信息:

#8 给root用户授权命令:

grant all privileges on *.* to 'root'@'%' with grant option;

#9  刷新使配置生效

flush privileges;

#10  退出并重启MySQL服务

sudo systemctl restart mysql

八、创建新用户并分配权限

#1  登录MySQL并查看当前用户和所对应的远程连接权限

sudo mysql -u root -p
select user,host from mysql.user;

#2 创建用户设置密码并给远程连接的权限'%'

create user 'test555'@'%' identified by 'test@123';

#3  给新用户授权

grant all privileges on *.* to 'test555'@'%' with grant option;

#4  刷新使配置生效

flush privileges;

#5  退出并重启MySQL服务,使用新用户和密码登录

sudo systemctl restart mysql.service
sudo mysql -u test555 -p

九、使用python的pymysql库简单测试远程连接情况

远程连接可以之后就能对通过python对 MySQL数据库进行相关操作

猜你喜欢

转载自blog.csdn.net/weixin_47614014/article/details/117950023