内容概述
● MySQL是免费的;很多互联网公司在做大型数据库集群的时候,MySQL是首选产品,部署成本也很低;
● MySQL数据库对硬件的要求也不高;
● MySQL是开源数据库:很多企业针对一些特定的业务,对MySQL作大幅度的修改;比如阿里的”OceanBase数据库”,就是针对电商的业务在MySQL基础上修改而来的。
数据库简介
● 数据库比程序重要!!!!
目录
1.为什么需要数据库
2.什么是数据库系统 ,关系型数据库简介
3.非关系型数据库简介
1.为什么需要数据库
so,既然数据可以存放在注入word,txt这些文件中,为什么还需要数据库呐?
可以看到,以txt和Excel这个两个例子可以发现,其存储数据本身没有问题,但是查询能力就很捉急;;;所以需要数据库!
2.什么是数据库系统 ,关系型数据库简介
关系型数据库把数据分门别类保存在不同的数据文件中,这样数据库就省去了不停的判断某条数据的数据类型是什么的工作,所以数据读写的速度很快;因此,可以向数据库中保存上亿的数据;即数据库可以保存大量的数据,还可以高速的读写。
3.非关系型数据库简介
MySQL数据库下载、安装、配置、测试
在项目部署的环境中,服务器主机用的都是Linux,需要用命令行的方式安装mysql,Linux下安装mysql相对麻烦点,以后在Linux部分,会了解相关内容。
0.mysql简述
1.下载MySQL
MySQL下载:
访问MySQL的官网https://www.mysql.com/;
2.安装MySQL
这儿强烈建议,选择传统的加密规则!!!
3.配置MySQL
4.测试是否安装成功
使用【mysql -uroot -p】发现可以正常登录MySQL的root账户;
使用【show databases;】(注意最后需要一个分号)命令,发现可以正常打印出mysql数据库的数据逻辑空间;由此,说明MySQL安装成功了。
Navicat安装使用
本篇博客内容:怎么给数据库创建用户和分配权限
MySQL自带了root管理员账户,root账户权限是最高的,一般只有数据库管理员才会使用root账号登录MySQL;
一般的开发人员应该为其创建权限较低的账户,比如只做增删改查操作的账户,一般账户最好不要给其分配像销毁数据表这样的权限。
1.安装Navicat这个MySQL客户端。
MySQL命令行客户端用户操作体验不好,在命令行里编写SQL语句既没有变色,又没有提示等,所以一般使用MySQL图形客户端来操作MySQL;Navicat基本是MySQL最好用的图形客户端软件;
安装Navicat:
2.操作Navicat
(2.1)操作Navicat之:设置Navicat字体的大小
(2.2)操作Navicat之:创建一个数据库连接(也就是使用一个账户连接数据库,或叫做登录数据库)
(2.3)操作Navicat之:创建一个新账户(或称作用户),并给这个新账户分配权限;
为了方便后续演示,在root这个账户的连接上,创建一个新的逻辑空间:test1;
此时,root这个管理员账户,就已将创建了一个用户名为:dev1,密码为123456的账户了;;;;其他人,可以使用这个账户登录这个数据库;
(2.4)操作Navicat之:既然创建了dev1这个账号,现在就可以dev1这个账号登录了
So,账户名和连接名是两个不同的东西哦。
3.MySQL的存储数据的目录: (不是MySQL安装目录哦)
4.重设置root密码:
(4.1)比如忘记某个(非root)账户的密码:先登录root账户,然后给忘记密码的账户重新设置一个密码;
(4.2)如果root账户的密码忘记了:怎么重置root账户密码
实际演示:
txt文件内容,即如果root密码忘了,这儿重置root账户密码为12345;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘12345’;
只有以管理员身份打开PowerShell,才能去管理MySQL服务的启动、关闭等;
mysqld —defaults-file=“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” —init-file=“F:/temp.txt” —console
(4.3)关闭mysqld,重启mysql;
(4.3附)mysqld和mysql的区别;;;;;(这儿目前,并不能很好的理解,后续补充)
这部分主要参考[MySQL中mysqld.exe与mysql.exe的区别?](http://www.mzh.ren/mysqlexe-vs- mysqldexe.html)这篇文章:
其中几个比较重要的介绍如下:
● mysqld.exe
mysqld, also known as MySQL Server, is the main program that does most of the work in a MySQL installation. MySQL Server manages access to the MySQL data directory that contains databases and tables. The data directory is also the default location for other information such as log files and status files.
mysqld是MySQL的主程序,mysqld意思是mysql daemon(后台进程),在后台运行,监听3306端口。
似乎可以这样理解:mysqld是MySQL的后台支撑和管理的程序!不清楚对不对。。。 存疑哦?????????????????、、
…………………………………………………… ● mysql.exe
mysql is a simple SQL shell with input line editing capabilities. It supports interactive and noninteractive use. When used interactively, query results are presented in an ASCII-table format. When used noninteractively (for example, as a filter), the result is presented in tab-separated format. The output format can be changed using command options.
mysql是MySQL的命令行工具,是一个客户端软件,可以对任何主机的mysql服务(即后台运行的mysqld)发起连接。
似乎可以这样理解:mysql是MySQL提供的一个可以使用命令行方式来输入SQL语句,进行增删改查之类操作的程序;;;;;;存疑哦?????????????????、、
……………………………………………………
● mysqladmin.exe
mysqladmin is a client for performing administrative operations. You can use it to check the server’s configuration and current status, to create and drop databases, and more.
mysqladmin 是一个执行管理操作的客户端,例如创建或删除数据库,重新加载授权表,将表刷新到磁盘以及重新打开日志文件。
……………………………………………………
● mysqlshow.exe
The mysqlshow client can be used to quickly see which databases exist, their tables, or a table’s columns or indexes.
mysqlshow 是用来查看当前数据库、表、索引、视图等
……………………………………………………
● mysqldump.exe
The mysqldump client utility performs logical backups, producing a set of SQL statements that can be executed to reproduce the original database object definitions and table data. It dumps one or more MySQL databases for backup or transfer to another SQL server. The mysqldump command can also generate output in CSV, other delimited text, or XML format.
mysqldump 是mysql 数据导出及备份工具。
……………………………………………………
● mysqlslap.exe
mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage. It works as if multiple clients are accessing the server.
mysqlslap是mysql 性能分析测试工具。
MySQL配置文件
这篇博客,虽然没有什么SQL语句介绍,但是是十分重要的!!!
1.my.ini配置文件简介:
MySQL的配置文件是my.ini,在MySQL的数据存储目录:
(注:可变色的记事本工具,可以使用NotePad++,也可以使用微软提供的VSCode)
使用VSCode打开my.ini:
删掉my.ini文件的注释:否则my.ini太长了,不方便看;
修改my.ini文件后,保存的时候,发现权限不够,自己设置一下,但后来搞砸了,还是不行。。。。最后的解决办法是:将my.ini内容复制出来,保存到另一个新文件中,将原my.ini文件删掉,然后将新文件名字改为my.ini,将这个新的my.ini复制进【C:\ProgramData\MySQL\MySQL Server 8.0】目录下。。。。目前看来,没什么问题,,,
[client]
port=3306
[mysql]
no-beep
[mysqld]
port=3306 #端口号
datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data #数据目录
default_authentication_plugin=mysql_native_password #密码认证插件
default-storage-engine=INNODB #默认存储引擎
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" #开启严格模式
log-output=FILE #用文件记录日志
general-log=0 #关闭日志输出
general_log_file="DESKTOP-P1FU27H.log" #日志文件名称
slow-query-log=1 #开启慢查询日志
slow_query_log_file="DESKTOP-P1FU27H-slow.log" #慢查询日志文件名称
long_query_time=10 #大于多少秒的执行SQL被记录在慢查询日志
log-error="DESKTOP-P1FU27H.err" #错误日志名称
log-bin="DESKTOP-P1FU27H-bin" #
server-id=1 # 数据库ID
lower_case_table_names=1 #把表名转换成小写
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads" #导入导出数据的目录地址
max_connections=151 #最大连接
table_open_cache=2000
tmp_table_size=138M
thread_cache_size=10 #线程数量
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=266M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
innodb_thread_concurrency=17
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
loose_mysqlx_port=33060
2.my.ini部分配置项介绍
逐条解释如下:
3.注:再啰嗦一下,每次修改my.ini配置文件后,如果想让其生效,必须经过以下步骤:
第一步:关闭mysql服务:
net stop mysql80
第二步:加载下配置文件(这一步,应该是需要的吧…):
mysqld —defaults-file=“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” —console
然后【Ctrl + C】关闭mysqld服务;
然后关闭PowerShell,重新以为管理员身份打开一个新的PowerShell窗口:
第三步:重启mysql服务
net start mysql80
4.net stop mysql后,mysql服务就停滞了,无法使用了
……………………………………………………