这篇文章主要围绕你了解MySQL中的日志吗?和mysql日志有哪些展开,旨在为您提供一份详细的参考资料。我们将全面介绍你了解MySQL中的日志吗?的优缺点,解答mysql日志有哪些的相关问题,同时也会
这篇文章主要围绕你了解 MySQL 中的日志吗?和mysql日志有哪些展开,旨在为您提供一份详细的参考资料。我们将全面介绍你了解 MySQL 中的日志吗?的优缺点,解答mysql日志有哪些的相关问题,同时也会为您带来Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)、Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''、centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?、ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock...的实用方法。
本文目录一览:- 你了解 MySQL 中的日志吗?(mysql日志有哪些)
- Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
- Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
- centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?
- ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock...
你了解 MySQL 中的日志吗?(mysql日志有哪些)
MySQL 中有两类非常重要的日志,一类是 redo log (重做日志),一类是 bin log (归档日志)
redo log
重做日志利用的,是 MySQL 中,常见的 WAL 技术,WAL 技术的全程是:Write-Ahead-Logging,它的关键点就是先写日志,再写磁盘。
在我们的 MySQL 中,当有一条记录需要更新的时候,InnoDB 引擎就会将记录先写到 redo log 里,并且更新内存,这个时候这次更新操作就已经结束了,InnoDB 引擎会在适当的时候,将这个操作记录到磁盘里,这个更新通常情况是在系统比较空闲的时候做的。
InnoDB 的 redo log 是大小固定的,比如可以一次配置一组 4 个文件每个文件的大小是 1GB,那么整个 redo log 的大小就是 4GB。redo log 的写入过程是循环写入,从头开始写,写到末尾后,就会又从头开始写(可以想象成一个环状)
有了 redo log,InnoDB 就可以保证数据库发生异常重启后,之前提交的记录不会丢失。这个能力称为 crash-safe。
这里有两个问题。
1. 写日志和直接写数据库有什么差别吗?
写日志的时候,可以看做是一个追加操作,即顺序写。而写数据库则是随机写。在机械硬盘中,顺序写的速度要远大于随机写。(kafka 对硬盘的操作也是顺序的,所以即使是机械硬盘,速度也不会太慢)
2. 使用 redo log,刷入数据的操作,会不会影响 SQL 执行效率?
将 redo log 中的数据刷入磁盘的操作,是一个阻塞的操作。在之行 SQL 语句的时候,如果伴随着数据脏页的刷入,会就导致 MySQL 会突然抖一下,执行时间变长。
bin log
bin log 被称为归档日志,它是 Service 层的日志。bin log 属于逻辑日志,记录的是语句的原始逻辑,比如将 ID 等于 2 一行数据删除。bin log 是一种非常重要的日志,他可以用于数据库的读写分离,主从复制等功能(从机读取主机的 bin log,通过 SQL-Thread 执行 SQL 语句,实现同步),具体如何实现同步,会在日后的博客中讲解。
两段式提交
MySQL 在执行一条修改语句时的逻辑如下:
update t set c = c + 1 where id = 5
- 执行器先从存储引擎中,找到 id=5 的这条数据,由于 id 是主键,所以引擎会执行使用索引树搜索,找到 id=5 这一行数据,如果这一条数据已经存在于内存的数据页中,则执行返回给执行器。否则将会从磁盘中将数据页读到内存,再返回。
- 执行器拿到 id=5 的这一行数据,找到 c 这一列,c+1 得到新数据,再调用引擎层的接口,将新值写入。
- 引擎层将这一条新的数据更新到内存中,同时将这个更新操作,记录到 redo log 里,此时 redo log 处于 prepare 状态,通知执行器,语句已经执行成功,随时可以提交事务。
- 执行器生成此次操作的 bin log,将 bin log 写入磁盘
- 执行器调用提交事务接口,将处于 redo log 的 prepare 状态修改成 commit 状态。
两段式提交的意义,是保证 bin log 和 redo log 的数据一致性。
Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
原因:系统盘满了
[root@localhost opt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 17G 0 100% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 477M 80M 372M 18% /boot
[root@localhost opt]#
解决:
删除大文件后,重启系统解决
[root@localhost mysql]# /opt/lampp/lampp status
Version: XAMPP for Linux 1.8.3-3
Apache is not running.
MySQL is not running.
ProFTPD is running.
df: 未处理文件系统
[root@localhost opt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 17G 0 100% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 477M 80M 372M 18% /boot
[root@localhost opt]#
[root@localhost ~]# /opt/lampp/lampp status
Version: XAMPP for Linux 1.8.3-3
Apache is not running.
MySQL is running.
ProFTPD is running.
转
xampp 无法启动mysql 找不到mysql.sock
(2016-02-24 23:21:24)
分类: 技术 |
如果xampp中的mysql启动不了,出现ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)报错,
停止xampp的时候报:
-bash-4.1# /opt/lampp/lampp stop
Stopping XAMPP for Linux 1.8.2-6...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Stopping ProFTPD...kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
fail.
解决办法:
如果网上一些方法不好用的话,可以试试以下方法:
1. 确定系统盘是否满了
#df -h
2. 删除/opt/lampp目录中的pid文件(删掉后xampp重启时会重建,如果不放心,可以先备份lampp目录)
删除mysql相关缓存:
#rm -rf /opt/lampp/var/mysql/VM_*
删除proftp相关缓存:
#rm -rf /opt/lampp/var/proftpd.pid
如果找不到pid文件,可以搜一下:
#find /opt/lampp -name ''*.pid''
Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
MySQL已经被我移到数据盘了,本地连接数据库会报错:Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
但是远程是可以连接的,my.cnf设置mysql的根目录也改成了数据盘的地址,还要在加上client的参数,设置如下:
[client]
socket = /home/data/mysql/mysql.sock
之后重启下mysql就可以了
centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?
centos7 设置 mysql 自启动的配置文件中
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #Restart=on-failure #RestartPreventExitStatus=1 #PrivateTmp=false
这里的
[Service]
User=mysql
Group=mysql,
user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?还是其他呢?
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock...
今天在配置客户服务器的时候遇到了一个很奇怪的问题,MySQL能够正常启动和停止,但在使用mysql -u root -p进入mysql的时候,出现标题所示的错误
根据错误提示,/var/lib/mysql目录下面缺少mysql.sock文件,将数据库的data目录下的mysql.sock软链到/var/lib/mysql目录下面就好了,mysql.sock文件是数据库启动后自动生成的,没有启动时是没有的
今天关于你了解 MySQL 中的日志吗?和mysql日志有哪些的讲解已经结束,谢谢您的阅读,如果想了解更多关于Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)、Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''、centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?、ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock...的相关知识,请在本站搜索。
本文标签: