当前位置: 主页 > 数据库

mysql数据库 登录-mysql ip地址库

发布时间:2023-02-09 14:45   浏览次数:次   作者:佚名

文章目录

1 MySQL的理解 1.1 MySQL的历史和理解

MySQL是一个免费开源的小型关系型数据库管理系统。随着数据库功能和性能的不断完善,可靠性不断增强

2000年4月,MySQL将旧的存储引擎组织起来,命名为MyISAM

2001 年,支持事务处理和行级锁的存储引擎 InnoDB 被集成到 MySQL 发行版中。 该版本集成了 MyISAM 和 InnoDB 存储引擎。 MySQL和InnoDB的正式版本是4.0。

2004年10月,发布经典4.1版本。

2005年10月发布了一个里程碑版本MySQL 5.0,增加了对游标、存储过程、触发器、视图和事务的支持。在5.0之后的版本中mysql数据库 登录,MySQL向高性能数据库的发展步伐清晰可见

MySQL于2008年1月16日被SUN收购mysql数据库 登录,2009年SUN被Oracal收购

在MySQL 5.6版本中,数据库的可扩展性、集成性和查询性能都得到了改进。新特性包括全文搜索,开发者可以通过InnoDB存储引擎列表对基于文本的信息进行索引和搜索; InnoDB重写日志文件容量也增加到了2TB,可以提升写入密集型应用的负载性能; 加速 MySQL 复制; 提供新的编程接口,使用户能够将 MySQL 与新旧应用程序和数据存储无缝集成

为什么要使用 MySQL 数据库

在众多数据库管理系统提供的功能特性中,只有40%的功能被使用。另一方面,MySQL在性能和标准的选择上一直坚持性能优先的原则,成为最受关注的系统之一。互联网行业流行的数据库软件。

1.2 数据库基础知识

数据库管理系统提供的功能

数据库管理系统提供了许多功能,通过SQL(结构化查询语言)来定义和操作数据,维护数据的完整性和安全性,以及管理各种数据库。 那么数据库管理系统支持的SQL提供了哪些功能呢?

数据定义语言 (DDL)

数据库管理系统提供数据定义语言来定义数据库中涉及的各种对象,定义数据完整性约束、机密性限制等约束数据操作语言(DML)

数据库管理系统提供了一种数据操作语言来实现对数据的操作。 数据操作有两种基本类型:检索(查询)和更新(插入、删除和更新)。 数据控制语言(Data Control Language,DCL)

数据库管理系统提供了一种数据控制语言来控制数据库,包括数据完整性控制、数据安全控制和数据库恢复等。 2 MySQL的安装和配置

Linux系统下安装MySQL

Windows系统下zip包安装MySQL

3 MySQL登录和权限

注意:下面提到的登录都是通过命令行登录的

3.1 用户登录 3.1.1 登录命令

MySQL登录

mysql -h 127.0.0.1 -u root -proot company
mysql -h 127.0.0.1 -u root -p company -e "SELECT * FROM t_dept";

参数说明如下:

3.1.2 登录错误处理

连接太多,连接不上MySQL

在这里插入图片描述

解决问题的思路:

首先我们要考虑是不是我们的MySQL数据库参数文件中对应的max_connections参数值设置得太小,导致客户端连接数超过了数据库所能承受的最大值。

这个值的默认大小是151,我们可以根据实际情况进行调整。

对应解决方案:设置全局max_connections=500

但是这个调整会有隐患,因为我们无法确认数据库是否能承受这么大的连接压力,就像一个人只能吃一个馒头,现在却要吃10个,他肯定接受不了. 如果反映在服务器上,可能会有宕机的可能。

所以这也体现了我们上线一个新的业务系统的时候,一定要做好压力测试。 确保数据库在以后进行了优化和调整。 其次,可以限制 Innodb 的并发处理数。 如果innodb_thread_concurrency = 0(意思是无限制),可以先改成16或者64,看服务器压力。如果很大,可以先调小,降低服务器压力,再慢慢调大, 取决于您的业务 3.2 创建用户 3.2.1 创建用户

MySQL账户管理

创建用户语法:

CREATE USER username[IDENTIFIED BY [PASSWORD] 'password']
	    [,username[IDENTIFIED BY [PASSWORD] 'password']]
	    ……
	    [,username[IDENTIFIED BY [PASSWORD] 'password']]
创建用户示例:
CREATE USER 'cjgong'@'localhost' IDENTIFIED BY '123456';

3.2.3 删除用户

DROP USER 'cjgong'@'localhost';

3.2.4 重命名用户

rename user 'test3'@'%' to 'test1'@'%';

3.3 授予和查看权限

MySQL权限管理

授予权限:

GRANT priv_type ON databasename.tablename
	TO username[IDENTIFIED BY [PASSWORD] 'password'] 
	WITH GRANT OPTION

参数说明:

为创建的用户赋权并刷新权限示例:

GRANT SELECT ON company.t_dept TO 'cjogng2'@'localhost' 
IDENTIFIED BY '123456';
授权之后,不要忘记更新权限表
flush privileges   

查看权限:

SHOW GRANTS FOR 'cjgong'@'localhost' \G

3.4 忘记密码和修改密码 3.4.1 忘记密码解决方法

在MySQL中,如果密码丢失,是无法直接找回的,只能通过特殊的方式修改密码。

在配置文件my.cnf中加入如下行,重启mysql免密码登录。

跳过授权表

3.4.2 各版本如何修改密码

更新语句修改

mysql5.7之前

UPDATE user SET password=PASSWORD("new_password")
WHERE user="root" AND host="localhost";

mysql5.7修改密码

update user set authentication_string=password('123456') where user='root';

MySQL8修改密码

alter user root@'localhost' identified with mysql_native_password by 'root1'

3.4.3 修改权限赋值语句

GRANT priv_type ON database.table
	TO user [IDENTIFIED BY [PASSWORD] 'new_password']

3.4.4 修改简单密码报错

报错

通过'root'更改用mysql_native_password标识的用户root@'localhost';

ERROR 1819 (HY000):您的密码不符合现行政策要求

过程

查询密码策略

mysql> SHOW VARIABLES LIKE ‘validate_password%;

删除密码身份验证策略

默认禁用,设置为ON时,密码可以设置为当前用户名

set global validate_password.check_user_name=OFF;

密码强度检查级别,0/LOW,1/MEDIUM,2/STRONG。 默认为 1,即 MEDIUM

set global validate_password_policy=0;
set global validate_password.length=4;

特殊字符

set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
flush privileges;

密码认证政策

0/LOW:只检查长度

1/MEDIUM:检查长度、数字、大小写、特殊字符

2/STRONG:检查长度、数字、大小写、特殊字符字典文件 3.5 回收权限

REVOKE ALL PRIVILEGES,GRANT OPTION
	FROM user1 [IDENTIFIED BY[PASSWORD] ‘password’][,user2 [IDENTIFIED BY[PASSWORD] ‘password’]]

参数说明:

例子:

REVOKE SELECT ON *.* FROM 'cjgong'@'localhost'
回收权限之后,不要忘记更新权限表
flush privileges      

4 数据库及查看帮助文档 4.1 查看帮助文档

MySQL帮助文档:然后根据自己的MySQL版本选择对应的版本号查询帮助文档

在dos窗口通过mysql -u root -p登录,然后help contents,可以查看相应的帮助文档,如:help create database;:查看创建数据库的创建文档

4.2 数据库操作

创建数据库:

create database if not exists testdb;
带字符创建数据库
create database if not exists testdb default character set utf8;
单独地修改字符集
alter database testdb default character set latin1;

查看数据库:

show databases;

选择一个数据库并查询:

use testdb;
select * from db.table;

删除数据库:

drop database if exists testdb;

5表操作

建表

create table if not exists testTable(列名 列类型 comment '字段的注释'...) comment='表的注释';
使用如下命令只是在原表基础上复制了个表
create table 表名 as select * from other_table; 

表定义视图

show create table TableName;
或者使用如下查看表的详情信息
desc TableName;

表重命名

alter table old_table_name rename [to] new_table_name;
或者使用如下命令
rename table old_table_name to new_table_name;

表注释修改

alter table TableName comment '修改后的表的注释';

修改表结构,增加字段

alter table TableName add 属性名 属性类型;

在表中指定字段后添加字段

alter table TableName add 属性名 属性类型 after 属性名;

表字段删除:

alter table TableName drop 属性名;

修改表字段属性:

alter table TableName modify 属性名 新属性类型 comment '修改后的字段注释';

修改表字段名:

alter table TableName change 旧属性名 新属性名 旧属性类型;

表删除

drop table TableName;

6 存储引擎

查看数据库支持的存储引擎类型:show engines

或者使用命令 show variables like 'storage_engine%'

修改默认存储引擎my.ini

默认存储引擎=INNODB

注意需要重启MySQL服务器