您的当前位置:首页>全部文章>文章详情

【MySQL】库操作

CrazyPanda发表于:2024-06-21 17:34:18浏览:391次TAG: #mysql

一、系统数据库

1.information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列表息、权限信息、字符信息等

2.mysql:核心数据库,里面包含用户、权限、关键字等信息。不可以删除

3.performance_schema:mysql 5.5 版本后添加的新库,主要收集系统性能参数,记录处理查询请求时发生的各种事件、锁等现象

4.sys:mysql5.7 版本新增加的库,通过这个库可以快速的了解系统的元数据信息,可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助


二、数据库操作

1.创建数据库

语法: CREATE DATABASE db_name charset utf8;

举例CREATE DATABASE haha ;

CREATE DATABASE db_name charset utf8;

2.查看数据库

查询当前用户下所有数据库show databases;

查看创建数据库的信息show create database db_name;

查询当前操作所在的数据库名称select database();


3.选择数据库

use db1

4.删除数据库

DROP DATABASE db_name;


三、命名规范

可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如: CREATE SELECT
不能单独使用数字
最长128位


四、用户权限

1.用户管理

创建用户
create user ‘用户名’@‘ip地址’  identified by '密码';

删除用户

drop user ‘用户名’@‘ip地址’;

修改用户

rename user ‘用户名’@‘ip地址’;to  ‘新用户名’ @ ‘ip地址’


2.授权管理

show grants for ‘用户’@‘ip地址’                      ----查看权限

grant  权限 on 数据库.表 to ‘用户’@‘ip地址’       ----授权

revoke 权限 on 数据库.表 from ‘用户’@‘ip地址’   ----取消权限

创建新用户
create user 'alex'@'localhost' identified '123456';

授权方式一:为alex授权 db1数据库下的所有表的 查询.更新.修改权限
grant select,update,delete on db1.*  to 'alex'@'localhost';

授权方式二:为alex 授权 所有库的所有权限(除grant权限外)
grant all privileges on *.*  to 'alex'@'localhost';

刷新用户权限
flush privileges;


创建用户及授权例子

all privileges  除grant外的所有权限            select          仅查权限            select,insert   查和插入权限
            ...
            usage                   无访问权限
            alter                   使用alter table
            alter routine           使用alter procedure和drop procedure
            create                  使用create table
            create routine          使用create procedure
            create temporary tables 使用create temporary tables
            create user             使用create user、drop user、rename user和revoke  all privileges
            create view             使用create view
            delete                  使用delete
            drop                    使用drop table
            execute                 使用call和存储过程
            file                    使用select into outfile 和 load data infile
            grant option            使用grant 和 revoke
            index                   使用index
            insert                  使用insert            lock tables             使用lock table
            process                 使用show full processlist            select                  使用select
            show databases          使用show databases
            show view               使用show view
            update                  使用update
            reload                  使用flush
            shutdown                使用mysqladmin shutdown(关闭MySQL)
            super                   使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
            replication client      服务器位置的访问
            replication slave       由复制从属使用


权限列表


五、修改密码

NO.1:mysqladmin命令

mysqladmin -u用户名 -p密码 password 新密码

NO.2:直接设置用户密码 

set password for '用户名'@'IP' = password('新密码');
             
flush privileges;

NO.3:修改mysql库下的user表

5.7版本修改密码方式:

update mysql.user set authentication_string=password('新密码') where user= '用户名'          flush privileges; -- 刷新权限             

5.6 版本:

update mysql.user set password = password('新密码') where user= '用户名'flush privileges; -- 刷新权限


六.忘记密码

在忘记root密码的时候,可以这样: 

1.首先打开cmd 窗口,关闭mysql服务    net stop mysql 

2.然后跳过权限检查,启动mysql,输入命令
    mysqld --skip-grant-tables 

3.重新打开一个新的cmd窗口,启动客户端(已跳过权限检查,可以直接登录)    mysql 

4.直接进来,修改密码update mysql.user set authentication_string=password('123456') where user='root'; 

5. 刷新权限flush privileges;

 


七.中文乱码问题

1.查询字符编码

SHOW VARIABLES LIKE 'char%';

2.制服乱码

修改方法:
1. 创建my.ini文件,放在mysql根路径下

2. 在该文件中添加以下内容即可:

3.添加此文件后需要重新启动服务,以保证此文件生效------------------------------------------------------------[client]default-character-set=utf8

[mysql]

#设置mysql客户端默认字符集default-character-set=utf8

[mysqld]

#设置3306端口

port = 3306#允许最大连接数

max_connections=200#服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

#创建新表时将使用的默认存储引擎default-storage-engine=INNODB

#解决mysql在执行sql语句后出现1055错误,sql_mode = only_full_group_by不相容

sql_mode='NO_ENGINE_SUBSTITUTION'

乱码已死

注意:如果使用的是mysql5.7版本,则需要创建my.ini文件,5.7版本以前数据库自带my,ini文件,直接改动编码即可.

目前最稳定与常用的数据库版本为(5.6版本与5.5版本)

 

猜你喜欢

【MySQL】MySQL索引原理与慢查询优化
浏览目录# 一、索引介绍二、索引方法三、索引类型四、聚合索引和辅助索引五、测试索引六、正确使用索引七、组合索引八、注意事项九、查询计划十、慢日志查询十一、大数据量分页优化一、索引介绍#  一般的应用系统,读写的比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出现问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。什么是索引:简单来说,相当于图书的目录,可以帮助用户快速找到需要的内容。   在mysql中
发表于:2024-06-21 浏览:385 TAG:
【MySql】mysql数据库表分区设计实现
文章目录前言一、什么是mysql表分区?二、表分区有哪几种方案? 如何实现1、创建订单表2、添加订单的索引为联合索引(需要修改为索引联合索引,不然后面会报错)3、按照订单时间范围来分区4、向数据库插入数据(创建存储过程,循环插入2023到2025年的数据,数据时间间隔为半个小时1次)5、查询分区数据插入情况6、根据分区查询数据2.1 范围分区(Range Partitioning)2.2 列表分区 (List Partitioning)2.3 哈希分区 (hash Partinioning)2.
发表于:2024-07-16 浏览:386 TAG:
【MySQL】MySQL主从同步实现
要实现MySQL的主从同步,可以按照以下步骤来进行操作:1 配置主服务器确保主服务器的MySQL配置文件my.cnf或my.ini中启动了二进制日志中brinary.log,即设置了log-bin参数为ON。为主数据库创建一个用于复制的用户,并授予复制权限。例如使用以下明命令:Create USER 'repl'@'slave_ip_address' INENTIFIED BY 'password';Grant REPLACEACTION SLAV
发表于:2024-06-27 浏览:241 TAG:
【MySQL】MYSQL数据库设计规范
     1、数据库命名规范        采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;        命名简洁明确(长度不能超过30个字符);        例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个
发表于:2024-07-17 浏览:248 TAG:
【MySql】存储与字段
文章目录1. 存储:一个完整的存储过程是怎样的?·创建MySQL数据库·确认字段·创建数据表·插入数据2. 字段:那么多字段类型,该怎么定义?·整数类型·浮点数类型和定点数类型·文本类型·日期与时间类型1. 存储:一个完整的存储过程是怎样的?在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。·创建MySQL数据库数据存储的第一步就是创建数据库。为什么不是直接创建数据表,而是创建一个数据库呢?从系统架构层次上看,MySQL数据库系统从大到小
发表于:2023-12-08 浏览:377 TAG:
【MySql】Centos7 安装 MySQL5.7 步骤
Centos7 安装 MySQL5.7 步骤(一)、使用yum源方式安装4.1 开启mysql的远程访问权限4.2 为firewalld添加开放端口33064.3 远程连接测试3.1 启动mysql并查看状态3.2 获取临时密码3.3 登录mysql3.4 修改登录密码2.1 下载mysql的yum源配置2.2 安装mysql的yum源2.3 使用yum方式安装mysql2.3.1 安装过程中报错解决1、卸载系统自带 mariadb2、下载并安装MySQL官方的 Yum3、使用并设置mysql4
发表于:2023-11-30 浏览:2115 TAG:
【MySql】mysql 将数据库中的所有表结构和数据 导入到另一个库(亲测有效)
一、问题描述在本地开发一个功能,需要结合具体数据测试代码是否正确,但服务器上的数据不可随便修改。此时则需要将服务器上某个数据库的表批量导入到本地、而后进行测试。将数据库db1中的所有表及数据(如table1、table2),批量导入到另一个数据库db2中。二、解决方案刚开始自己一直尝试用DataGrip、Navicat的sql/csv格式导入导出,总有错误或者遗漏,比如报错中止、50张表却只导入32张等,可能是操作方式有误或者数据格式有问题。也试过用sql语句,但仍失败。经查阅资料、尝试多次,终
发表于:2024-01-30 浏览:380 TAG:
【MySql】批量替换数据表中某字段的值
系统域名变更,需要把数据库存储的图片、文件等链接域名也替换掉,使用了文字替换的方法,在此记录一下:数据库:mysqlUPDATE user SET headimg = REPLACE(headimg, 'a.com', 'b.com');其中 user 是数据表,headimg是其中的字段,把headimg中'a.com'全部替换成'b.com',headimg中
发表于:2024-04-02 浏览:337 TAG:
【MySQL】MySql中的锁(表锁,行锁)
    锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所在有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。 概述    相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。My
发表于:2024-06-16 浏览:243 TAG:
【MySQL】初识数据库
第一篇:初识数据库#一、数据库管理软件的由来#基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问一个文件仅仅只能存在于某一台机器上。 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。 很不幸,这些假设都是你自己意淫出来的,上诉假设存在以下几个问题:1.程序所有的组件就不可能运行在一台机器上##因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器的性能
发表于:2024-06-21 浏览:272 TAG: #mysql