博客主页:【夜泉_ly】
本文专栏:【暂无】
欢迎点赞👍收藏⭐关注❤️
文章目录
安装
我的系统:Ubuntu 22.04.4 LTS
下面用root操作:
1. 更新系统包列表
确保系统软件包列表是最新的:
apt-get update
2. 安装MySQL服务器
Ubuntu官方仓库包含MySQL Server包,直接安装:
apt-get install mysql-server -y
3. 启动并验证MySQL服务
- 安装后服务会自动启动。验证状态:
systemctl status mysql
- 若未运行,手动启动并设置开机自启:
systemctl start mysql
systemctl enable mysql
不过这个开机自启有点没用,
毕竟MySQL是跑在服务器上的,
而服务器一般不会关机🤣。
4. 运行安全配置向导
执行安全脚本以设置密码、移除匿名用户等:
mysql_secure_installation
根据提示操作:
- 输入是否启用“验证密码”组件(可选,增强密码复杂度检查)。
- 设置root用户密码(我没设成,它说有什么auth_socket,什么default)。
- 移除匿名用户。
- 禁止远程root登录。
- 移除测试数据库。
- 重新加载权限表。
5. 验证MySQL登录
6. 设置root用户密码
网上说 4.运行安全配置向导 那步就能设置用户密码,
但我这里没成功:
所以用 “ALTER_USER” 命令来设置:
-- 进入MySQL Shell:
mysql
-- 在MySQL提示符下执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
exit;
注意:用MySQL时,一定要输 分号;
7. 配置远程访问(可选)
默认MySQL仅本地访问,需远程访问时:
-
修改配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到
bind-address = 127.0.0.1
改为0.0.0.0
(允许所有IP)或指定IP。 -
授权远程用户(示例为用户
user
和密码password
):CREATE USER 'user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
-
重启MySQL生效:
sudo systemctl restart mysql
-
(如果需要)开放防火墙端口:
sudo ufw allow 3306/tcp
8. 测试连接
初识 MySQL
1. 什么是MySQL?
which mysql
which mysqld
其中:
因此:
- MySQL本质:基于CS模式的一种网络服务
- 客户端(Client):发送 SQL 请求,以交互或程序化的方式从服务器查询或修改数据。
- 服务器(Server):运行 MySQL 的核心服务程序(
mysqld
),负责处理客户端的请求,并在后台执行数据存储、管理及返回结果。
又因为,MySQL 是一种网络服务,
因此它会通过网络进行通信,
因此它需要绑定一个 端口号。
查询端口号:
所以,可以简单的下个定义了:
MySQL是一套给我们提供数据存取的服务的网络程序。
2. 什么是数据库?
那数据库又是什么呢?
这个我去网上逛了一圈,说法很多,大致分两种,
- 是在磁盘或内存中以特定的结构和格式组织、存储、管理数据的仓库。
- 是通过结构化方式持久化存储、组织和管理数据的系统。
有点抽象,不过感觉不用记,
毕竟纠结这种定义意义不大。
来看看数据库是干嘛的吧。
首先我们得知道,为什么不用文件存。
主要有以下几个缺点:
- 不利于查询、管理、储存
数据越多越麻烦。 - 安全性
比如很多单机游戏直接用文件存数据,
所以可以用外挂去改。
(比如葫芦侠,小学时经常用😋)
从用户的角度,
一般的文件确实提供了数据的存储功能,
但是并没有提供非常好的数据管理能力。
而数据库的本质,
就是 对数据内容存储的一套解决方案,
你给它字段或者要求,它直接给你结果。
所以上面的这些,总结一下就是:
一套存储解决方案!
3. 看看数据库
下面简单见见数据库。
mysql -h 127.0.0.1 -P 3306 -u root -p
其中:
-h 指明 MySQL 服务所在主机。
-P 指明我们要访问的端口号,默认 3306。
-u 指明登录用户。
-p 指明需要输入密码。
不过由于目前是本地登录,
-h -P不用写,mysql -u root -p也行。
样例:
使用MySQL建立一个数据库建立一张表结构,插入一些数据。
看看MySQL在LINUX中是如何表现的。
创建数据库
show databases;
创建数据库helloworld
:
create database helloworld;
exit;退出后,
此时,/var/lib/mysql中,发现一个同名目录已形成:
ls /var/lib/mysql
可以认为,在Linux下 建立数据库的本质就是建目录。
创建表
先使用数据库:
use helloworld;
建一个表:
create table student(
name varchar(32),
age int,
gender varchar(2)
);
去看看helloworld目录,表已经生成了:
可以认为,在Linux下 建表的本质就是建文件。
插入查看数据
插入数据:
insert into student (name, age, gender) values ('张三', 18, '男');
insert into student (name, age, gender) values ('李四', 19, '男');
查看数据:
select * from student;
数据库服务
建目录,建文件,改文件,
这些工作是谁做的?mysqld
数据库本质其实也是文件!!
只不过这些文件并不由程序员直接操作,
而是由数据库服务帮我们进行操作:
数据库结构与存储机制
安装数据库服务器,
其实只安了个数据库管理系统程序,
这个程序可以管很多库,
一般一个应用对应一个库,
而一个库对应很多表:
存储引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
查看:
show engines;
希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!