环境信息:
OS:Ubuntu18.04
MySQL: 5.7.22
1.安装MySQL
在 Ubuntu 18.04 中,默认情况下,只有最新版本的 MySQL 包含在 APT 软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包 apt-get。
sudo apt-get update
sudo apt-get install mysql-server
2.配置MySQL
2.1 安装配置
sudo mysql_secure_installation
配置项较多,如下所示:
#1
VALIDATE PASSWORD PLUGIN can be used to test passwords...
Press y|Y for Yes, any other key for No: N (我的选项)
#2
Please set the password for root here...
New password: (输入密码)
Re-enter new password: (重复输入)
#3
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : N (我的选项)
#4
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y (我的选项)
#5
By default, MySQL comes with a database named 'test' that
anyone can access...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N (我的选项)
#6
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y (我的选项)
2.2 检查mysql服务状态:
systemctl status mysql.service
显示如下结果说明mysql服务是正常的:
3.配置远程访问
在Ubuntu下MySQL缺省是只允许本地访问的,使用workbench连接工具是连不上的;
如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件;
3.1 首先用根用户进入:
sudo mysql -uroot -p
默认的MySQL安装之后根用户是没有密码的,命令执行后会让你设置root的密码,进入root后才能进行其他设置:
以root进入mysql后也可用命令给root设置密码:
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "774318";
3.2 新建数据库和用户
用root用户新建数据和用作远程访问的用户
CREATE DATABASE test1 character set utf8; 创建数据库
GRANT ALL PRIVILEGES ON test1.* TO test_user@localhost IDENTIFIED BY "123456"; 创建用户 test_user(密码123456) 并赋予其test1数据库的所有权限
3.3 进行远程访问或控制配置
GRANT ALL PRIVILEGES ON test1.* TO test_user@"%" IDENTIFIED BY "123456"; 允许test_user用户可以从任意机器上登入mysql
sudo gedit /etc/mysql/my.cnf
##在文件头加入[mysqld] 不然登陆数据库会报错
##在最后添加如下配置,允许其他机器访问MySQL >skip-networking => # skip-networking
最后在/etc/mysql/mysql.conf.d文件夹下修改mysqld.cnf 将 bind-address:127.0.0.1这一行注释掉重新启动,就好了