Skip to content

Mysql

安装

shell
sudo apt update

# 安装
sudo apt install mysql-server

# 启动 mysql 服务
sudo systemctl start mysql

# 设置 MySQL 服务在系统启动时自动启动
sudo systemctl enable mysql

# 使用用户为 root 的账号密码登陆
mysql -u root -p

# 检查 MySQL 服务状态
sudo systemctl status mysql

# 退出 mysql shell
quit;

# 查看MySQL服务的状态
sudo service mysql status

# 启动 mysql
sudo service mysql start

# 停止 mysql
sudo service mysql stop

# 查看MySQL错误日志
sudo less /var/log/mysql/error.log

SQL 命令

sql
-- 查看有那些表
SHOW TABLES;

-- 查看有那些数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE `数据库名`;

-- 如果没有就创建,否则就什么都不做
CREATE DATABASE IF NOT EXISTS `数据库名`

-- 切换到指定的数据库
USE 数据库名;

-- 运行指定 sql 文件
source /xxxx/xxxx/xxxx.sql

-- 查看表的数据
select * from 表名;

-- 查看所有用户
SELECT User FROM mysql.user;

-- 将 abd 数据库名称修改为 def
RENAME DATABASE abc TO def;

-- 删除数据库
DROP DATABASE xxx;

登录

shell
mysql -u root -p

错误日志

  • 服务器连接 mysql 失败

错误日志:Error: Access denied for user 'root'@'localhost',解决方案:MySQL Error: : 'Access denied for user 'root'@'localhost'

创建数据库

创建一个指定字符集的数据库

sql
CREATE DATABASE IF NOT EXISTS `数据库名`
DEFAULT CHARACTER SET 'utf8mb4';

操作数据表

创建表

sql
-- NOT NULL 不能为空
-- AUTO_INCREMENT 自增列
-- PRIMARY KEY 设置为主键
-- DEFAULT CURRENT_TIMESTAMP 字段创建时间

-- 名称 类型 属性
CREATE TABLE `表名` (
  id int NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
  name varchar(100) COMMENT '名字',
  age int COMMENT '年龄',
  address varchar(100),
  create_at timestamp DEFAULT CURRENT_TIMESTAMP
)

更新表名

sql
ALTER TABLE `表名称` RENAME `新表名`

给表添加新的字段

sql
ALTER TABLE `表名称` ADD COLUMU `key` varchar(255)
```FF

删除表的指定列

```sql
ALTER TABLE `表名称` DROP `key`

更改指定列

sql
ALTER TABLE `表名称` MODIFY `key` varchar(100)