MySQL常用操作

目录

  • [1. 安装MySQL/MariaDB](#1. 安装MySQL/MariaDB)
  • [2. 用户管理](#2. 用户管理)
    • [2.1 用户信息](#2.1 用户信息)
    • [2.2 用户权限privileges](#2.2 用户权限privileges)
  • [3. 增删改查](#3. 增删改查)
    • [3.1 增删数据库/表](#3.1 增删数据库/表)
    • [3.2 查询](#3.2 查询)
  • 参考

1. 安装MySQL/MariaDB

bash 复制代码
# 1) 确认是否已安装mysql
rpm -qa | grep mysql

# 2) (如无)执行以下命令进行安装
## 方法一
yum install mysql -y
## 方法二(适用场景:CentOS 7版本中MySQL已从默认的程序列表中移除) 
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server

# 3) 初始化&启动
#chown -R mysql:mysql /var/lib/mysql/    #权限设置
#?mysqld --initialize                     #初始化MySQL;Fatal error: ... find out how to run mysqld as root
systemctl start mysqld                  #启动MySQL
systemctl status mysqld                 #查看MySQL运行状态

# 4) 验证
mysqladmin --version    #如果没有输出任何信息,说明安装未成功

#5) 用户设置,详见本文第2部分
mysql   #默认情况下登录密码为空
>mysqladmin -u root password "new_password"  -- root默认密码为空,设置root密码;

或者可以安装mysql的平替MariaDB,后者是mysql的一个开源分支,开发这个分支的原因之一是:甲骨文公司收购了mysql后,有将mysql闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

bash 复制代码
yum install mariadb-server mariadb 

systemctl start mariadb  #启动MariaDB
#systemctl stop mariadb  #停止MariaDB
#systemctl restart mariadb  #重启MariaDB
#systemctl enable mariadb  #设置开机启动

MariaDB的目的是完全兼容MySQL,包括API命令行。即本文mysql命令可以直接在MariaDB使用(持续测试中...)。

2. 用户管理

MySQL的用户信息存储在mysql.user表。

2.1 用户信息

root用户操作

mysql 复制代码
# 连接mysql数据库查看用户;
use mysql;
select user,host from user;

# 创建用户;
create user 'user01'@'host' identified by 'password';
flush privileges;

# 修改用户密码;
set password for 'user01'@'host'=password('new_password')  -- 方法一;
alter user 'user_name'@'host' IDENTIFIED BY 'new_password'  -- 方法二;
flush privileges;

# 删除用户;
drop user 'user_01'@'host';

普通用户操作

mysql 复制代码
# 新开窗口测试是否创建成功
mysql -u user01 -p

# 修改密码
set password=password('new_password');

2.2 用户权限privileges

privileges是用户能执行的数据库操作,包括CREATE, DROP, GRANT, DELETE, SELECT, UPDATE, INSERT, UPDATE, DELETE等。

mysql 复制代码
# 查看用户权限;
show grants for 'user01'@'host';

# 授权
grant select on db01.tb01 to 'user01'@'host'  -- 将db01库tb01表select权限授权给user01;
flush privileges;
grant all privileges on *.* to 'user01'@'host'  -- 全部库表的所有权限;
flush privileges;
grant select(col1) on db01.`tb01` to 'user01'@'host' -- 字段颗粒度;
flush privileges;

#回收授权
revoke select on db01.tb01 from 'user01'@'host';

3. 增删改查

3.1 增删数据库/表

mysql 复制代码
show databases;
create database db01  -- 创建数据库;
drop database db01  -- 删除数据库;

use db01  -- 连接数据库;
show tables;
# 创建数据表模板
create table tb01(col1 char(10) primary key, col2 smallint)  -- create方法;
source /path/to/tb01.sql  -- 导入sql文件方法;
# 插入数据
insert into table01 values (value1,value2);
insert into table01 (col1,col2) values (value1,value2);
# 删除表
drop table table01;

3.2 查询

mysql 复制代码
select * from tb01;

参考

MySQL安装
mysql数据库基础命令
mysql 设置用户

相关推荐
倔强的石头_14 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐5 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端