Ubuntu18.04 Server搭建MySQL服务器
安装Ubuntu系统就不在这里赘述了,之前文章里写过,哈哈。话不多说,赶紧开始
一、安装MySQL数据库
检查一下有没有安装过MySQL,如果没有安装就没有内容,放心安装好了
dpkg -l | mysql-server
安装MySQL命令, -y的意思就是在安装过程中遇到是否继续的提示就不用手动在敲y了,当然也可以不加y,看你心情了
sudo apt install mysql-server -y
在安装过程中,我遇到了一个问题,报错信息如下:
百度了n中方法也没有解决,其中最多的是这种方法,将info文件中的内容清空,然后在重新更新,类似于这种(但是我试了,还是不行):
于是,我就更新了软件包和列表,用下边两个命令,第一个命令时间可能有一点长。
sudo apt-get upgrade # 更新所有的软件包 sudo apt update # 更新软件包列表
然后再次安装MySQL就没问题了。安装好之后,用命令来检查,通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功
netstat -tap | grep mysql
到这一步,安装就完成了,接下来开始配置数据库。
二、配置数据库
为了确保数据库的安全性和正常运转,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。
(1)安装验证密码插件。
(2)设置root管理员在数据库中的专有密码。
(3)随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
(4)删除默认的测试数据库,取消测试数据库的一系列访问权限。
(5)刷新授权列表,让初始化的设定立即生效。
对于上述数据库初始化的操作步骤,在下面的输出信息旁边我做了简单注释。
root@ubuntu-virtual-machine:~# mysql_secure_installation
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: N # 这里我选择N
Please set the password for root here.
New password: # 输入要为root管理员设置的数据库密码
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) : y # 删除匿名账户
Success.
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) : N # 禁止root管理员从远程登录,这里我没有禁止
... 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.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y # 删除test数据库并取消对它的访问权限
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
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!
检查MySQL服务状态:
systemctl status mysql
显示如下结果说明mysql服务运行是正常的:
用mysql -u root -p命令,Enter password:处输入刚设置的密码,回车,就能够进入mysql数据库。
使用 use mysql; 命令打开mysql命名的数据库,显示当前数据库的表:show tables; 查询user表里的数据:select * from user;(user表里是mysql数据库的所有账户信息)
我这是新搭建的数据库,所以什么都没有,哈哈!!
现在配置mysql允许远程访问,首先编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind-address = 127.0.0.1
保存退出,然后进入mysql数据库,执行授权命令:
mysql -u root -p mysql> grant all on *.* to root@'%' identified by '你的密码' with grant option; mysql> flush privileges; # 刷新权限 mysql> exit
然后执行exit命令退出mysql服务,再执行如下命令重启mysql:
systemctl restart mysql
主机名或IP填写Ubuntu的IP地址,连接成功。
三、创建新的数据库用户
由于在工作中不会用到root用户,所以创建了一个新的用户。
首先是先登录数据库
# 登录数据库 sudo mysql -u root -p # 查看所有用户 SELECT User,Host FROM mysql.user;
创建新的数据库用户
mysql> CREATE USER 'dvtdev'@'%' IDENTIFIED BY '123456';
给用户授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'dvtdev'@'%' WITH GRANT OPTION;
mysql> flush privileges; # 刷新权限
mysql> exit
别忘了重启服务:systemctl restart mysql
参考文章:https://www.cnblogs.com/opsprobe/p/9126864.html