MySQL是个啥?
MySQL是一个开源的数据库管理系统。以前LAMP是VPS的标配,L是操作系统Linux,A是Web服务器Apache,M是保存数据的MySQL,P是生成动态网页的PHP,这一套组合造就了很多有趣的Web服务,比如(我觉得)老掉牙的WordPress。
MySQL中可以创建数据库,数据库中又可以创建表。数据库和表的关系就像Excel和它的工作簿(Sheet)。
为什么用数据库,用个文件不是一样可以保存数据吗?这个是为了避免多个进程保存数据时产生冲突,导致数据不完整。比如一个文件内容是A,一个进程要保存数据B写入这个文件的时候,另一个进程也要保存数据C,那么最后这个文件的内容可能是A+B或者A+C,先保存完文件的进程的数据会被后面那个写文件的进程覆盖掉。
这里数据库也是CS架构的一种体现,大家把数据的保存和修改全部提交给一个服务进程统一处理,就不会有竞争冲突了。
MySQL现在被Oracle收购了,然后MySQL的创始人离职并且开发了一个新数据库管理软件MariaDB,MariaDB是MySQL的一个分支,兼容MySQL的语法,增加了一些新的特性。
现在Alma的软件仓库里MySQL和Mariadb都有,我倾向于使用MariaDB。毕竟Oracle有些骚操作,比如Oracle收购了Java,以前一直的免费的,然后从某个版本开始就收费了,而且它是按照公司的员工总数收费,而不是按照软件工程师的数量收费。
MySQL操作
安装
# 安装
dnf install -y mariadb-server
# 启动并设置开机自启
systemctl enable --now mariadb
# 一些增强MySQL安全性的操作,比如修改密码、删除匿名用户、禁止root远程登录等,可以不执行
mysql_secure_installation复制
数据库操作
执行mysql -u root
,进入MySQL命令行。
如果执行mysql -u root
,那么使用UDS连接数据库,可以不输密码。
如果执行mysql -u root -h 127.0.0.1 -p
,那么使用IP连接数据库,需要输入密码。
这些差异可以联系前面提到的进程间通讯的知识点。
我们只要知道怎么创建和删除数据库就可以了。一般基于LAMP开发的网络服务中,把MySQL服务的IP、端口、用户名、密码、数据库写进配置文件,那些网络服务就能正常工作了。
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库test_db
CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 使用数据库test_db
USE test_db;
-- 查看数据库test_db中的表
SHOW TABLES;
-- 删除数据库test_db
DROP DATABASE test_db;复制
注意:
每个命令后面必须输入 ;
,否则会报错。命令对大小写不敏感, show databases
和SHOW DATABASES
一样。但是数据库名和表名对大小写敏感。创建数据库这里, CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
设置数据库可以保存utf-8编码的字符,没有这个设置的话保存中文会报错。
如果希望更安全一些的话,可以创建MySQL一个用户,只能连接指定的数据库。
-- 创建用户test,密码为test1234
CREATE USER 'test'@'localhost' IDENTIFIED BY 'test1234';
-- 授予用户test对test_db数据库的所有权限
GRANT ALL PRIVILEGES ON test_db.* TO 'test'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;复制
表操作
表的操作就是增删改查(CRUD),增加、删除、修改、查询记录,这里演示一下。
-- 创建数据库
CREATE DATABASE bubble_tea_shop;
-- 创建表
CREATE TABLE drinks (
id INT PRIMARY KEY,
name VARCHAR(50),
price DECIMAL(10,2),
is_hot BOOLEAN
);
-- 插入数据
INSERT INTO drinks VALUES (1, '珍珠奶茶', 18.00, true);
-- 查询数据
SELECT * FROM drinks;
-- 修改数据
UPDATE drinks SET price = 20.00 WHERE id = 1;
-- 删除数据
DELETE FROM drinks WHERE id = 1;复制
图形客户端
HeidiSQL
这是一个Windows应用程序,通过https://www.heidisql.com/download.php
下载。需要通过ssh隧道把VPS的3306端口映射到本地,然后在程序中添加数据库。
phpMyAdmin
它是一个Web服务,可以通过dnf install -y phpmyadmin
部署在VPS上,然后通过浏览器管理数据库。
安装之后,在/etc/caddy/Caddyfile中添加:
test.vpsdiy.tech {
root * /usr/share/phpMyAdmin
tls x@x.com
file_server
php_fastcgi unix//run/php-fpm/www.sock
}复制
再执行如下命令,不然后面打开网址又提示权限错误。
chown caddy:caddy /var/lib/php/session
复制
打开https://test.vpsdiy.tech/index.php
,输入用户名和密码,就可以管理数据库了。
注意用完之后关闭这个网站,安全第一。
- 本文采用「人言兑.md」自动排版 -