暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL介绍

VPSDIY 2025-01-22
36

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;

复制

注意:

  1. 每个命令后面必须输入;
    ,否则会报错。
  2. 命令对大小写不敏感,show databases
    SHOW DATABASES
    一样。但是数据库名和表名对大小写敏感。
  3. 创建数据库这里,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.00true);

-- 查询数据
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」自动排版 -


文章转载自VPSDIY,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论