3.2 KiB
title | date | tags | categories | ||||||
---|---|---|---|---|---|---|---|---|---|
Ubuntu 安装MySQL(MariaDB)过程 | 2020-07-22 22:54:29 |
|
|
本文内容简单,只是整理了一下常规操作而已。
MariaDB 是 MySQL 的一个分支主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。
一般情况下我在个人的学习和开发中都会使用 MariaDB 来代替 MySQL,就像我会使用 Open JDK 来代替 Oracle JDK 一样。
1. 安装
在 Ubuntu 上安装 MySQL:
sudo apt-get install mysql-client mysql-server
安装 MariaDB 的话,把 "mysql" 改成 "mariadb" 即可:
sudo apt-get install mariadb-client mariadb-server
一般来说安装完成之后都是自动运行的,如果没有运行,可以执行 sudo service mysql start
启动它(MySQL 和 MariaDB 都一样)。
关闭服务:
sudo service mysql stop
查看服务状态:sudo service mysql status
我在阿里云的 Ubuntu 20.04 上安装 MySQL,版本输出信息为:
Server version: 8.0.20-0ubuntu0.20.04.1 (Ubuntu)在本地机的 Ubuntu 18.04.4 MariaDB,版本输出信息为:
Server version: 10.1.44-MariaDB-0ubuntu0.18.04.1 18.04
2. 初始化
mysqld -initialize
耐心等待命令执行完成。
3. 设置
3.1 登录数据库
切换系统 root 用户,输入
mysql -u root -p
不用输入密码,直接回车,登录 MariaDB(或者 MySQL)。
3.2 修改密码
set password for root@localhost = password('123');
否则默认密码为空。
3.3 修改 plugin
属性为 mysql_native_password
use mysql;
update user set plugin='mysql_native_password' where user='root';
然后输入 flush privileges;
使之生效。
否则系统的其他用户无法登录数据库的 root 用户。
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
3.4 将 host
属性设置为 %
use mysql;
update user set host = '%' where user = 'root';
然后输入 flush privileges;
使之生效。
否则其它设备上的客户端(DataGrid、Netcat 以及我们自己编写的程序等)无法登录数据库的 root 用户。
4. 注意!!!
上面的 3.3、3.4 针对的是我学习生活中需要在其他设备、其他系统用户上登录数据库的 root 用户。实际上,为了安全,我们可能不会允许这么做。
例如我们可能保留 root 用户的 plugin 属性为 unix_socket,系统的普通用户也只能登录数据库的其他用户,只有系统的 root 用户才能登录数据库的 root 用户。
我们还可能保留 root 用户的 host 属性为 localhost,或者只允许在指定的主机上登录 root,还可以添加另一个数据库用户(设置好适合的权限),用来在其他设备上登录并操作数据库。