拓之

拓之

Mysql安装以及常用操作

2024-11-05

有些指令一段时间不写就容易忘记,这里简单做个汇总记录一下。

一、mysql的安装以及配置

1. 安装mysq

debian或ubantu系统直接用这个指令安装,中途会提示设置密码之类的。

安装之前记得先更新软件包apt update && apt upgrade -y

sudo apt install mysql-server

安装完之后就可以用了,登录使用

mysql -uroot -p

然后会提示输入密码,输入设置的密码就可以连接到mysql服务器了

# 开机自启
systemctl enable mysql 
# 开始运行
systemctl start mysql
# 停止
systemctl stop mysql
# 重启
systemctl restart mysql

2. 修改配置

配置文件一般安装好了之后不用修改,这里可以按需进行修改

1. 配置文件位置

  • Linux/macOS:通常位于/etc/my.cnf或/etc/mysql/my.cnf。

  • Windows:通常位于C:\ProgramData\MySQL\MySQL Server X.Y\my.ini。

修改后记得重启systemctl restart mysql

vim my.cnf
[mysqld]
# 设置服务器的默认字符集为utf8
character-set-server=utf8
 
# 设置最大连接数,影响并发数量,默认151
max_connections = 151
 
# 设置服务器的时区
default-time-zone = '+08:00'
 
# nnoDB存储引擎的缓冲池大小,影响内存中数据的缓存,默认128
innodb_buffer_pool_size = 128M
 
# 设置临时表的最大大小
tmp_table_size = 32M
 
# 设置MySQL的日志文件的位置
log-error=/var/log/mysql/error.log
 
[client]
# 设置客户端的默认字符集
default-character-set=utf8

二、常用操作

在mysql中的指令一句结束之后都要加;不要忘记!

1. 数据库相关

  • 查看数据库
SHOW DATABASES;
  • 选择数据库,也是进入数据库mydatabase是要进入的数据库的名字。
USE mydatabase;
  • 创建数据库
CREATE DATABASE mynewdb;
  • 创建utf-8编码的数据库
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 删除数据库
DROP DATABASE mynewdb;
  • ‌查看当前选择的数据库‌
SELECT DATABASE();

2. 表相关

  • 查看当前数据库的所有表‌
SHOW TABLES;
  • 创建表(一般没这么随便)
CREATE TABLE 表名 (列名 数据类型, ...);
例如:CREATE TABLE users (id INT, name VARCHAR(100), age INT);
  • 查看表结构
desc 表名;
  • 删除
DROP TABLE 表名;
  • 删除表数据
DELETE FROM xxx [WHERE 删除条件] ;
  • 清空表的数据
TRUNCATE TABLE xxx;

3. 数据相关

  • 插入数据‌
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);,例如:INSERT INTO users (id, name, age) VALUES (1, 'Alice', 30);
  • 查询数据‌:使用命令SELECT * FROM 表名;,例如:
SELECT * FROM users;
  • 更新数据‌:使用命令UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件;,例如:
UPDATE users SET age = 31 WHERE id = 1;
  • 删除数据‌:使用命令DELETE FROM 表名 WHERE 条件;,例如:
DELETE FROM users WHERE id = 1;
  • 随机抽取100条数据
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,100;

4. 用户相关

  • 创建用户
 CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

username替换为你想要创建的用户名。

localhost表示允许登录该账户的IP只为当前主机的回环地址,你可以改为%来表示所有IP都可访问。

password替换为你想要设置的密码。

  • 用户授权,例如,授予 new_user 对特定数据库(例如 your_database )的所有权限:

授予所有数据库权限可以用*.*替代your_database.*

GRANT ALL PRIVILEGES ON your_database.* TO 'new_user'@'localhost';
  • 刷新权限-权限授予后,刷新才可以生效
FLUSH PRIVILEGES;
  • 默认root用户是只能本机链接的,可以用下面的指令设置成远程访问

其实就是在mysql.user表中把字段改一下

update user set host = "%" where user = "root";
  • 查看当前所有用户
select * from mysql.user;
  • 删除用户
DROP USER '用户名'@'localhost';

其中,用户名是要删除的用户的名称,localhost是该用户的主机名。

  • 修改用户密码
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';