独立开发者系列(9)——mysql管理使用

当前主流的关系型数据库使用时MYSQL,最大的好处就是开源和免费,所以掌握MYSQL的使用是所有开发者必备的基础。

可视化管理软件的使用

在使用命令行之前,最好使用可视化软件登录操作一遍,这样就能对mysql的基础功能体验下命令行和可视化的不同。

一般可视化工具免费的工具主要有:SQLFront  Heidisql 而付费的navicate 是用的比较多(或者自己去安装破解版)。使用感觉上,各有优劣,SQLFront清晰,特别是查看整个数据库的全部注释方面(比如我想查看某个项目的数据表注释,带有注释的一览)。SQLfront是这样显示的:
直接看到全部,而navicate要查看注释要点击对应表——设计表——查看

 还只能查看一个一个的字段,这对于快速理解整个表是非常不利的。

而Heidisql处于俩者之间 ,可以看到每个表的注释,但是由于项目刚接手,要快速读懂项目,核心只是想看字段+注释,稍微显得有点麻烦。

而在对数据的处理方面,SQLfront比navicate要差,经常会出现刷新找不到数据的情况,导出兼容性也弱。所以我一般将俩者集合起来使用。

   可视化工具大幅度减轻了我们对mySQL管理的难度,这样设计表/注释/字段/类型上都非常方便,但是命令行也需要掌握基础的,方便SQL异常的时候,快速排查。

安装好mysql之后(当前只要安装个phpstudy就会自带安装一个MYSQL,不用再特意去下载mysql安装)。为了方便使用,我们将我们下载好的mysql的bin目录放入到Path里面。然后打开cmd,键入mysql -uroot -p  就可以完成mysql服务器的命令行登录。


注解:命令行的优势是响应速度快,还可以做一些自动化操作,同时对于大量数据的操作,命令行有其独特的优势。下面是常用的命令操作(命令行操作mysql的场景还是比较少的,这里作为备忘录记录,一旦需要进行命令行操作的时候,查询)。
难题1:太久没使用的mysql,可能mysql忘记密码了怎么办?
解决办法: 直接输入 mysqld --console --skip-grant-tables --shared-memory ,另外启动窗口 mysql -u root 这样就进入了。该命令意思是以交互模式启动 MySQL 服务器,同时跳过权限表的加载,使用共享内存作为通信方式。这通常用于调试或在忘记 root 密码时恢复访问权限,进入mysql的数据表,更改密码即可。

命令行登录的基本操作

相关命令操作与解释

Show databases ;  //查询服务器当前的全部数据库

Use mysql ; 选择列表里面的mysql作为操作的数据库,类似我们界面点击了选中mysql的某个数据库。

Show tables 查看当前数据库的全部数据表。该命令在编程里面,对数据库的管理非常有效。一些后台的查看当前数据库的数据表操作命令,就是show tables。

desc  user 就会把这张数据表的信息 如果要查看某个详细的数据表信息。这也是一些看法的cms查看数据表的命令

show create table user; 查询创建user数据表的创建语句,这个功能对应了mysql管理软件的查看生成语句。

基本上我们登录mysql里面都是查询一些基础的数据库相关信息,极少情况下,我们会用命令行进行其他复杂的操作。比如创建数据表。

my.ini的配置详解

我们已经登录服务器,能对SQL进行基础的操作,这里再补充my.ini的配置详细解释。(这里以本地默认my.ini为一个版本进行记录,可以理解为了一个附录索引,所有配置类的,检查对应即可)

[mysql]

# MySQL 命令行客户端配置部分

default-character-set=utf8

# 设置客户端默认使用的字符集为 utf8,设置客户端登录的字符集,当前普遍用的字符串集合是utf8格式,字符串不对,会造成读写乱码

[mysqld]

# MySQL 服务器配置部分,可以看到mysql是由客户端+服务器端一起构成,首先服务器端启动,客户端访问进行操作,所有redis/mongDB的模式C/S的设计模式

port=3306

# 设置 MySQL 服务监听的端口号为 3306,为了安全可以更换成其他端口,或者当服务器需要部署俩个mysql的时候,需要修改端口,否则会造成冲突

basedir=D:/phpstudy_pro/Extensions/MySQL5.7.26/

# 设置 MySQL 程序的安装目录,可以理解为mysql的根目录,所有软件的安装都有个根目录

datadir=D:/phpstudy_pro/Extensions/MySQL5.7.26/data/

# 设置 MySQL 数据文件存放的目录,我们客户端看到的所有数据,其实都是一个一个文件夹存档在该目录里面的

character-set-server=utf8

# 设置服务器默认的字符集为 utf8,默认字符集当前已经配置成utf8,切换字符集需要再每次命令登录的时候操作

collation-server=utf8_unicode_ci

# 设置服务器默认的字符排序规则,排序规则

default-storage-engine=MyIsam

# 设置默认的存储引擎为 MyISAM,当前主流系统设计innodb(innodb功能更全面点,性能差点,但是当前的服务器普遍性能比较高,对可靠性要求更高,也就是支持事物,myiSAM支持事物比较弱)

init_connect='SET NAMES utf8'

# 当客户端连接时,自动执行 SET NAMES utf8 命令

innodb_buffer_pool_size=64M

# 设置 InnoDB 缓冲池的大小为 64MB 这个限制意味着一次读取的数据量,所以才需要seleect的时候,加上limit,要不然单表超过64M 直接崩掉。

innodb_flush_log_at_trx_commit=1

# 设置 InnoDB 在事务提交时的日志刷新行为

innodb_lock_wait_timeout=120

# 设置 InnoDB 锁定等待超时时间为 120 秒

innodb_log_buffer_size=4M

# 设置 InnoDB 日志缓冲区的大小为 4MB

innodb_log_file_size=256M

# 设置 InnoDB 日志文件的大小为 256MB,超过这个大小之后,会切割成下个数据块

interactive_timeout=120

# 设置交互式客户端的超时时间为 120 秒

join_buffer_size=2M

# 设置连接缓冲区的大小为 2MB

key_buffer_size=32M

# 设置索引缓冲区的大小为 32MB

log-error=D:/phpstudy_pro/Extensions/MySQL5.7.26/data

# 设置错误日志文件的存放路径  这个很重要,数据库的执行错误日志

log_error_verbosity=1

# 设置错误日志的详细程度,当数据库异常的时候,需要降低等级,查看详细情况

max_allowed_packet=16M

# 设置最大允许的数据包大小为 16MB

max_connections=1000

# 设置最大连接数为 1000,同时打开的连接数,当前框架里面一般都会自动close,在以前没有框架直接使用mysql_connet的时代,很多性能很差的代码不会主动关闭用完的连接,导致访问经常性的卡死。

max_heap_table_size=64M

# 设置内存临时表的最大大小为 64MB,临时表,这个需要理解临时表的概念。

myisam_max_sort_file_size=64G

# 设置 MyISAM 排序文件的最大大小为 64GB

myisam_sort_buffer_size=32M

# 设置 MyISAM 排序缓冲区的大小为 32MB

read_buffer_size=512kb

# 设置读取缓冲区的大小为 512KB

read_rnd_buffer_size=4M

# 设置随机读取缓冲区的大小为 4MB

server_id=1

# 设置服务器的唯一 ID,数据库集群的时候,需要该标志进行唯一性识别

skip-external-locking=on

# 启用或禁用外部锁定

sort_buffer_size=256kb

# 设置排序缓冲区的大小为 256KB

table_open_cache=256

# 设置打开表的缓存数量

thread_cache_size=16

# 设置线程缓存的大小

tmp_table_size=64M

# 设置临时表的大小为 64MB

wait_timeout=120

# 设置非交互式客户端的超时时间为 120 秒

[client]

# MySQL 命令行客户端的配置部分

port=3306

# 设置客户端默认连接的端口号为 3306

default-character-set=utf8

# 设置客户端默认使用的字符集为 utf8

  • 34
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大梁来了

千山万水总是情,打赏一块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值