sudo apt-get update
sudo apt-get install mysql-server
输出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mysql-server
0 upgraded, 1 newly installed, 0 to remove and 64 not upgraded.
Need to get 9,948 B of archives.
After this operation, 111 kB of additional disk space will be used.
Get:1 http://mirrors.ustc.edu.cn/ubuntu bionic-updates/main amd64 mysql-server all 5.7.34-0ubuntu0.18.04.1 [9,948 B]
Fetched 9,948 B in 0s (139 kB/s)
Selecting previously unselected package mysql-server.
(Reading database ... 110437 files and directories currently installed.)
Preparing to unpack .../mysql-server_5.7.34-0ubuntu0.18.04.1_all.deb ...
Unpacking mysql-server (5.7.34-0ubuntu0.18.04.1) ...
Setting up mysql-server (5.7.34-0ubuntu0.18.04.1) ...
sudo mysql_secure_installation
其它都可以回车,需要输入password的时候输入两次,这个是root密码。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
# 检测密码插件,可以增加安全性,一般学习时不需要。
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
# 请在此设置root密码
Please set the password for root here.
New password:
Re-enter new password:
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. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
# 是否移除匿名用户?
Remove anonymous users? (Press y|Y for Yes, any other key for No) :
... skipping.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.
# 不允许root远程登录?
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
... skipping.
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
# 移除test数据库并访问?
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
... skipping.
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
Success.
All done!
systemctl status mysql.service
# 或者
sudo service mysql status
正常显示:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-07-05 03:31:45 UTC; 2min 37s ago
Main PID: 47667 (mysqld)
Tasks: 28 (limit: 4629)
CGroup: /system.slice/mysql.service
└─47667 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
Jul 05 03:31:44 begin_server systemd[1]: Starting MySQL Community Server...
Jul 05 03:31:45 begin_server systemd[1]: Started MySQL Community Server.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind_address = 127.0.0.1。
得用sudo, 输入你刚才设定的密码。
sudo mysql -r root -p
进入后创建数据库并添加用户及极限,study@"%"表示用户名为study, 且可以从任何地方访问,123是密码。
##1 创建数据库beginner
create database beginner;
##2 创建用户study(密码123) 并赋予其beginner数据库的所有权限
GRANT ALL PRIVILEGES ON beginner.* TO study@"%"IDENTIFIED BY "123";
##3 刷新权限
flush privileges;
端口默认就是3306, IP地址是我内部局域网的虚拟机192.168.1.8。
连接信息: