模拟生成环境的MySQL安装方法-通用二进制方式安装
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.并发响应用户请求的网络IO模型
1>.单进程
特点:一个进程响应一个请求。而且只有一个进程,所以执行任务是串行的。
2>.多进程/线程
特点:一个进程响应一个请求,如prefork多进程模式(由master进程提前开启的多个prefork进程,然后由这些prefork进程去响应多个请求。);也可以一个线程响应一个请求,如worker多线程模式(由master进程开启多个子进程,当用户请求时,由这些子进程生成多个线程(默认生成25个线程),然后再由这些线程去响应用户的每一个请求。)。
可以同时启动多个进程或线程。从而能够并发响应多个请求。依赖网络并发编程模型select()机制
3>.复用模型
特点:只有一个线程但是可用同时响应多个用户请求。如event模式,它依赖于事件驱动epoll()机制。CentOS的2.6.x内核就以及引入了该模型。这种机制已经相当成熟了。
4>.多线程
特点:每个线程响应多个请求。比如目前有m个线程,每个线程可以处理n个请求,那么可以并发响应的请求数是:m*n。
二.磁盘I/O模型
1>.同步阻塞
2>.同步非阻塞
3>.IO复用
4>.事件驱动
5>.异步非阻塞(AIO)
详情可参考:http://www.cnblogs.com/yinzhengjie/p/7795799.html
三.文本数据库缺陷
1>.数据冗余和不一致
例如,我们往"/etc/passwd"文件中存入2个一模一样的用户,我们很轻松就会把这两个用户写进去,也就是说我们将这个用户在文件中进行了2次写入的操作,当我们修改其中一行的用户名的密码时,另外一行的数据库并没有修改,这个时候系统验证用户的密码时就会出现不一致的情况,因为它不知道以哪一行的配置生效啦!
2>.数据访问困难
比如我们在“/etc/passwd”文件中存入一个亿条用户信息,我们如果用grep命令去查询一个用户的话,它首先会将这个文件在内存中打开,那么问题来了,这个文件的大小可能已经是有几个G的大小了,打开文件是需要时间的,打开之后进行搜索过滤我们想要的内容又会需要时间的,因此数据的访问时一个问题。
3>.数据孤立
比如某公司的nginx的访问日志,该公司的日志每天以TB为单位,那么久意味着每天的日志可能要放在多个文件进行存储,如果这个时候想要分析一个星期内用户并发的峰值,这个时候每个文件的数据都是孤立的,我们很难建立关系。
4>.完整性
这个很好理解,比如尹正杰要给林纳斯·托瓦兹转账5万元,正常的流程应该是尹正杰的银行卡总金额减去5w,而林纳斯·托瓦兹的总金额账户需要增加5w元。当尹正杰给林纳斯·托瓦兹刚刚转完账时,尹正杰的总金额扣掉了5w之后程序就崩溃啦,而林纳斯·托瓦兹的总金额也没有增加。那么问题来了,这5w块钱算谁的?
5>.原子性
我们必须要有一种机制能够把多个操作当成一个操作,要么都能执行成功,要么都不能执行成功。就好比上面的案例,如果尹正杰给林纳斯·托瓦兹转账成功,那么尹正杰的账户就得减去5w而林纳斯·托瓦兹的账户就得多出5w,这才算一个事件。一旦尹正杰在给林纳斯·托瓦兹转账的过程中程序崩溃了,那么尹正杰的总金额扣去的钱应该退还回来,而林纳斯·托瓦兹的总金额也应该是不变的。
6.并发访问
比如我们用QQ可以玩王者荣耀,还可以登录空间,还可以玩QQ游戏,还可以玩王者荣耀之类的游戏,那么在登录这些程序的时候,都是需要访问同一个数据的,即用户信息,如果我们将这个用户信息存在一个文件中的话,并发就是一个砍。
7>.安全性问题
比如我们将公司的所有员工的薪资用一个电子表格存取,这就很难实现每个用户只去看自己的信息啦。除非你将每个员工的信息分别做一个表格。
在Linux操作系统中,我们一旦给用户一个对某个文件读取权限的话,那么它肯定是可以看见这个文件的所有内容的。他可以通过grep,cat,more,less,vim等应用程序去打开这个文件。这是用户直接用应用程序去操作文件。这个时候如果我们在应用程序和文件之间添加一个代理程序去帮我们完成我们想要的操作。比如你想要往某个文件中写入数据,那么你只需要告诉这个代理程序我想往某个文件中写入数据,这个代理成会自动检查你是否对该文件有写入的权限,如果有就会执行相应的操作,如果不能就会返回相应的提示信息。我们把这个代理程序叫做DBMS(数据管理系统,全称DateBase Management System)。这也是针对文本数据库缺陷的一种补救措施。
用户可以通过两种方式来操作DBMS,一种是API,也就是通过底层处理数据的方法去处理某个文件,这种方法的用户一般都是程序员,因为普通用户压根就看不懂这些底层数据。还有一种方法就是通过SQL的方法去访问DBMS,这一般都是有特定的命令去执行,比如,select,delete,drop,show等等。
四.数据库的常见名词介绍
1>.事物
一个事物就是一件事情的多次操作的组合。比如尹正杰给林纳斯·托瓦兹转账5万元。最少需要做两件事情,第一件事情就是需要在尹正杰的总金额扣掉5w,第二件事情就是需要在林纳斯·托瓦兹的账户加上5w。这个转账的过程就是一个事物。一个数据库要支持事物的话,必须要满足ACID测试。其中“A”指的是原子性,"C"指的是一致性,“I”指的是隔离性(也就是说两个事物不能同时执行,比如转账操作和取钱操作。),“D”指的是持久性(也就是说,即便是数据库崩溃了,数据的状态也一定是完成了的)。事实上早些年MySQL是不支持事物的,不过现在MySQL的很多模块都已经支持事物啦。事物管理器严重依赖于锁(粒度)管理器。
2>.SQL
SQL的是结构化查询语言, 全称Struct Query Language,它是一个编程接口,我们也可以说它是命令接口。SQL定义了可以接受DCL(我们叫它数据控制语言,如实现授权和权限收回的典型命令有GRANT/REVOKE),DDL(全称Data Defination,我们叫它数据定义语言,典型命令指令有CREAT/ALTER/DROP),DML(全称Data Manipulation,我们叫它数据操作语言,典型命令有INSERT/DELETE/SELECT/UPDATE)的操作。我们通过SQL解释器(其实就是SQL的查询引擎)去执行我们需要的SQL命令以帮助我们进行数据的存储。与SQL并驾齐驱的接口就是API啦,不过API的难度较大,不适合普通用户,API一般都是针对程序员开发的。
3>.MySQL存储引擎
MySQL是插件式存储引擎,这些插件有的支持事物,有的不支持事物,有的安全性更好。MySQL有很多的存储引擎,我们可以按需选择自己需要的存储引擎,目前最流行的有两个存储引擎,即MyISAM和InnoDB。不过我们要注意的是,在Oracle收购MySQL之前就已经将InnoDB收购了。并将InnoDB用作商业化,只不过在收购MySQL之后,又在MySQL的基础上新增了InnoDB的存储。InnoDB也有改进版本,即XtraDB(percona)。
五.MySQL的安装方式以及版本选择的介绍
1.常见的安装方式
a>.Vendor:操作系统自带的rpm包;
b>.MySQL官方rpm包;
c>.通用二进制格式;
d>.源码编译;
注意,关于MySQL数据库包可以去官网下载,当然去搜狐的yum仓库也可以找到:http://mirrors.sohu.com/mysql
2.MySQL的版本选择
MySQL的安装方式有很多,大家可以选择自己熟悉的方式去安装,在选择版本上大家也不需要太过纠结,最新版本的MySQL不一定时最好的,在实际生产环境中,“稳定”压倒一切!这样这个MySQL版本软件能在服务器上跑起来要比你换一个最新版本的MySQL软件要有价值的多。那什么时候需要更换版本呢?就是该版本无法满足你当前的需求是可以更换,后者是当前版本存在漏洞,且漏洞没有有效的补丁时,需要更换MySQL的版本。就好像iPhone手机和小米手机一样,如果你只是想通过手机打电话而不做其他用处电话,其实小米的性价比会更好一点。
六.MySQL通用二进制格式安装
1.下载MySQL软件并解压软件
1 [[email protected] ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.54-linux2.6-x86_64.tar.gz 2 [[email protected] ~]# tar xf mysql-5.5.54-linux2.6-x86_64.tar.gz -C /usr/local/ 3 [[email protected] ~]#
2.创建启动MySQL的目录
1 [[email protected] ~]# groupadd -r mysql 2 [[email protected] ~]# useradd -g mysql -r -s /sbin/nologin mysql 3 [[email protected] ~]# id mysql 4 uid=496(mysql) gid=493(mysql) groups=493(mysql) 5 [[email protected] ~]#
3.修改目录权限
1 [[email protected] ~]# cd /usr/local/ 2 [[email protected] local]# ls 3 bin etc games include lib lib64 libexec mysql-5.5.54-linux2.6-x86_64 sbin share src 4 [[email protected] local]# ln -sv mysql-5.5.54-linux2.6-x86_64 mysql 5 `mysql‘ -> `mysql-5.5.54-linux2.6-x86_64‘ 6 [[email protected] local]# ls 7 bin etc games include lib lib64 libexec mysql mysql-5.5.54-linux2.6-x86_64 sbin share src 8 [[email protected] local]# cd mysql 9 [[email protected] mysql]# chown -R mysql.mysql ./* 10 [[email protected] mysql]# ll 11 total 72 12 drwxr-xr-x. 2 mysql mysql 4096 Nov 9 14:00 bin 13 -rw-r--r--. 1 mysql mysql 17987 Nov 28 2016 COPYING 14 drwxr-xr-x. 3 mysql mysql 4096 Nov 9 14:00 data 15 drwxr-xr-x. 2 mysql mysql 4096 Nov 9 14:00 docs 16 drwxr-xr-x. 3 mysql mysql 4096 Nov 9 14:00 include 17 -rw-r--r--. 1 mysql mysql 301 Nov 28 2016 INSTALL-BINARY 18 drwxr-xr-x. 3 mysql mysql 4096 Nov 9 14:00 lib 19 drwxr-xr-x. 4 mysql mysql 4096 Nov 9 14:00 man 20 drwxr-xr-x. 10 mysql mysql 4096 Nov 9 14:00 mysql-test 21 -rw-r--r--. 1 mysql mysql 2496 Nov 28 2016 README 22 drwxr-xr-x. 2 mysql mysql 4096 Nov 9 14:00 scripts 23 drwxr-xr-x. 27 mysql mysql 4096 Nov 9 14:00 share 24 drwxr-xr-x. 4 mysql mysql 4096 Nov 9 14:00 sql-bench 25 drwxr-xr-x. 2 mysql mysql 4096 Nov 9 14:00 support-files 26 [[email protected] mysql]#
4.创建单独的目录用于存储MySQL数据库文件
1 [[email protected] ~]# cat /proc/partitions 2 major minor #blocks name 3 4 8 0 10485760 sda 5 8 1 307200 sda1 6 8 2 9128960 sda2 7 8 3 1048576 sda3 8 8 16 10485760 sdb 9 [[email protected] ~]# 10 [[email protected] ~]# 11 [[email protected] ~]# fdisk /dev/sdb 12 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 13 Building a new DOS disklabel with disk identifier 0xfd32a610. 14 Changes will remain in memory only, until you decide to write them. 15 After that, of course, the previous content won‘t be recoverable. 16 17 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 18 19 WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to 20 switch off the mode (command ‘c‘) and change display units to 21 sectors (command ‘u‘). 22 23 Command (m for help): p 24 25 Disk /dev/sdb: 10.7 GB, 10737418240 bytes 26 255 heads, 63 sectors/track, 1305 cylinders 27 Units = cylinders of 16065 * 512 = 8225280 bytes 28 Sector size (logical/physical): 512 bytes / 512 bytes 29 I/O size (minimum/optimal): 512 bytes / 512 bytes 30 Disk identifier: 0xfd32a610 31 32 Device Boot Start End Blocks Id System 33 34 Command (m for help): n 35 Command action 36 e extended 37 p primary partition (1-4) 38 p 39 Partition number (1-4): 1 40 First cylinder (1-1305, default 1): 41 Using default value 1 42 Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +9G 43 44 Command (m for help): w 45 The partition table has been altered! 46 47 Calling ioctl() to re-read partition table. 48 Syncing disks. 49 [[email protected] ~]# 50 [[email protected] ~]# partx -a /dev/sdb 51 BLKPG: Device or resource busy 52 error adding partition 1 53 [[email protected] ~]# 54 [[email protected] ~]# cat /proc/partitions 55 major minor #blocks name 56 57 8 0 10485760 sda 58 8 1 307200 sda1 59 8 2 9128960 sda2 60 8 3 1048576 sda3 61 8 16 10485760 sdb 62 8 17 9446188 sdb1 63 [[email protected] ~]# [[email protected] ~]# pvcreate /dev/sdb1 64 Physical volume "/dev/sdb1" successfully created 65 [[email protected] ~]# 66 [[email protected] ~]# vgcreate mydata /dev/sdb1 67 Volume group "mydata" successfully created 68 [[email protected] ~]# 69 [[email protected] ~]# 70 [[email protected] ~]# lvcreate -L 5G -n MySQLdata mydata 71 Logical volume "MySQLdata" created 72 [[email protected] ~]# 73 [[email protected] ~]# mke2fs -t ext4 /dev/mydata/MySQLdata 74 mke2fs 1.41.12 (17-May-2010) 75 Filesystem label= 76 OS type: Linux 77 Block size=4096 (log=2) 78 Fragment size=4096 (log=2) 79 Stride=0 blocks, Stripe width=0 blocks 80 327680 inodes, 1310720 blocks 81 65536 blocks (5.00%) reserved for the super user 82 First data block=0 83 Maximum filesystem blocks=1342177280 84 40 block groups 85 32768 blocks per group, 32768 fragments per group 86 8192 inodes per group 87 Superblock backups stored on blocks: 88 32768, 98304, 163840, 229376, 294912, 819200, 884736 89 90 Writing inode tables: done 91 Creating journal (32768 blocks): done 92 Writing superblocks and filesystem accounting information: done 93 94 This filesystem will be automatically checked every 28 mounts or 95 180 days, whichever comes first. Use tune2fs -c or -i to override. 96 [[email protected] ~]#
创建逻辑卷详细步骤使劲戳我
1 [[email protected] ~]# mkdir /data 2 [[email protected] ~]# echo "/dev/mydata/MySQLdata /data ext4 defaults,noatime 0 0" >> /etc/fstab #定义开机自动挂载 3 [[email protected] ~]# 4 [[email protected] ~]# more /etc/fstab 5 6 # 7 # /etc/fstab 8 # Created by anaconda on Thu Nov 9 12:26:01 2017 9 # 10 # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ 11 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info 12 # 13 UUID=bcf1bee0-1904-40fb-85a5-5bb99223105b / ext4 defaults 1 1 14 UUID=c317aa92-86be-4214-acee-0862611e0241 /boot ext4 defaults 1 2 15 UUID=e41daebb-aa45-4751-916f-58cead33fcdd swap swap defaults 0 0 16 tmpfs /dev/shm tmpfs defaults 0 0 17 devpts /dev/pts devpts gid=5,mode=620 0 0 18 sysfs /sys sysfs defaults 0 0 19 proc /proc proc defaults 0 0 20 /dev/mydata/MySQLdata /data ext4 defaults,noatime 0 0 21 [[email protected] ~]# 22 [[email protected] ~]# mount -a #重读挂载信息 23 [[email protected] ~]# 24 [[email protected] ~]# mount 25 /dev/sda2 on / type ext4 (rw) 26 proc on /proc type proc (rw) 27 sysfs on /sys type sysfs (rw) 28 devpts on /dev/pts type devpts (rw,gid=5,mode=620) 29 tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") 30 /dev/sda1 on /boot type ext4 (rw) 31 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) 32 vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) 33 /dev/mapper/mydata-MySQLdata on /data type ext4 (rw,noatime) 34 [[email protected] ~]#
5.初始化MySQL数据库
1 [[email protected] ~]# cd /usr/local/mysql 2 [[email protected] mysql]# 3 [[email protected] mysql]# scripts/mysql_install_db --datadir=/data/mydata --user=mysql #指定数据库目录 以及启动服务用户名称 4 WARNING: The host ‘yinzhengjie‘ could not be looked up with resolveip. 5 This probably means that your libc libraries are not 100 % compatible 6 with this binary MySQL version. The MySQL daemon, mysqld, should work 7 normally with the exception that host name resolving will not work. 8 This means that you should use IP addresses instead of hostnames 9 when specifying MySQL privileges ! 10 Installing MySQL system tables... 11 171109 14:50:15 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 12 171109 14:50:15 [Note] ./bin/mysqld (mysqld 5.5.54) starting as process 2484 ... 13 OK 14 Filling help tables... 15 171109 14:50:17 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 16 171109 14:50:17 [Note] ./bin/mysqld (mysqld 5.5.54) starting as process 2492 ... 17 OK 18 19 To start mysqld at boot time you have to copy 20 support-files/mysql.server to the right place for your system 21 22 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! 23 To do so, start the server, then issue the following commands: 24 25 ./bin/mysqladmin -u root password ‘new-password‘ 26 ./bin/mysqladmin -u root -h yinzhengjie password ‘new-password‘ 27 28 Alternatively you can run: 29 ./bin/mysql_secure_installation 30 31 which will also give you the option of removing the test 32 databases and anonymous user created by default. This is 33 strongly recommended for production servers. 34 35 See the manual for more instructions. 36 37 You can start the MySQL daemon with: 38 cd . ; ./bin/mysqld_safe & 39 40 You can test the MySQL daemon with mysql-test-run.pl 41 cd ./mysql-test ; perl mysql-test-run.pl 42 43 Please report any problems at http://bugs.mysql.com/ 44 45 [[email protected] mysql]# 46 [[email protected] mysql]# ls /data/mydata/ #查看是否有文件生成,如果你也有者三个目录那么久说明你也安装成功啦! 47 mysql performance_schema test 48 [[email protected] mysql]#
6.初始化之后修改文件权限
1 [[email protected] mysql]# chown -R root ./* 2 [[email protected] mysql]# ll 3 total 72 4 drwxr-xr-x. 2 root mysql 4096 Nov 9 14:00 bin 5 -rw-r--r--. 1 root mysql 17987 Nov 28 2016 COPYING 6 drwxr-xr-x. 3 root mysql 4096 Nov 9 14:00 data 7 drwxr-xr-x. 2 root mysql 4096 Nov 9 14:00 docs 8 drwxr-xr-x. 3 root mysql 4096 Nov 9 14:00 include 9 -rw-r--r--. 1 root mysql 301 Nov 28 2016 INSTALL-BINARY 10 drwxr-xr-x. 3 root mysql 4096 Nov 9 14:00 lib 11 drwxr-xr-x. 4 root mysql 4096 Nov 9 14:00 man 12 drwxr-xr-x. 10 root mysql 4096 Nov 9 14:00 mysql-test 13 -rw-r--r--. 1 root mysql 2496 Nov 28 2016 README 14 drwxr-xr-x. 2 root mysql 4096 Nov 9 14:00 scripts 15 drwxr-xr-x. 27 root mysql 4096 Nov 9 14:00 share 16 drwxr-xr-x. 4 root mysql 4096 Nov 9 14:00 sql-bench 17 drwxr-xr-x. 2 root mysql 4096 Nov 9 14:00 support-files 18 [[email protected] mysql]#
7.创建MySQL服务启动脚本以及开机自启功能
1 [[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 2 [[email protected] mysql]# chkconfig --add mysqld 3 [[email protected] mysql]# chkconfig mysqld on 4 [[email protected] mysql]# chkconfig mysqld --list 5 mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 6 [[email protected] mysql]#
8.生成配置文件
1 [[email protected] mysql]# cp support-files/my-large.cnf /etc/my.cnf 2 cp: overwrite `/etc/my.cnf‘? y 3 [[email protected] mysql]# 4 [[email protected] mysql]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l #查看物理CPU个数 5 1 6 [[email protected] mysql]# cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看每个物理CPU中core的个数(即核数) 7 cpu cores : 1 8 [[email protected] mysql]# cat /proc/cpuinfo| grep "processor"| wc -l # 查看逻辑CPU的个数 9 1 10 [[email protected] mysql]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c #查看CPU信息(型号) 11 1 Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz 12 [[email protected]nzhengjie mysql]# 13 [[email protected] mysql]# grep thread_concurrency /etc/my.cnf | grep -v ^# 14 thread_concurrency = 2 ----------->这个参数我们建议设置成上面查看CPU核心数的2倍。由于我们看到的核心数是1,因此这个值设置为2即可,写大了也没有意义。 15 [[email protected] mysql]# 16 [[email protected] mysql]# grep datadir /etc/my.cnf 17 datadir = /data/mydata/ ----------->这个参数就是我们的MySQL数据库目录。 18 [[email protected] mysql]#
9.启动MySQL
1 [[email protected] mysql]# ll /data/mydata/ #在没有启动之前,只有以下3个目录 2 total 12 3 drwx------. 2 mysql mysql 4096 Nov 9 14:50 mysql 4 drwx------. 2 mysql mysql 4096 Nov 9 14:50 performance_schema 5 drwx------. 2 mysql mysql 4096 Nov 9 14:50 test 6 [[email protected] mysql]# 7 [[email protected] mysql]# service mysqld start #启动数据库,如果出现了以下的错误,一开始我也蒙圈,然后我看了一下启动脚本,发现脚本写的有问题,不知道是搜狐改过官方的二进制包还是官方自身的脚本就有bug。我们不去纠结这个问题了 8 Starting MySQL.171109 15:25:37 mysqld_safe error: log-error set to ‘/data/mydata//yinzhengjie.err‘, however file don‘t exists. Create writable for user ‘mysql‘. 9 ERROR! The server quit without updating PID file (/data/mydata//yinzhengjie.pid). 10 [[email protected] mysql]# 11 [[email protected] mysql]# touch /data/mydata//yinzhengjie.err #看了上面的问题时缺少pid文件而已,于是我们就手动创建一个它需要那个文件。然后再次启动就会启动成功。 12 [[email protected] mysql]# service mysqld start 13 Starting MySQL.... SUCCESS! 14 [[email protected] mysql]# 15 [[email protected] mysql]# ll /data/mydata/ #启动成功后,你会发现目录的下多了几个文件。不仅仅是之前的3个目录啦。 16 total 28696 17 -rw-rw----. 1 mysql mysql 18874368 Nov 9 15:26 ibdata1 #innodb存储的数据 18 -rw-rw----. 1 mysql mysql 5242880 Nov 9 15:26 ib_logfile0 #该文件和下面的ib_logfile1都是事物日志 19 -rw-rw----. 1 mysql mysql 5242880 Nov 9 15:26 ib_logfile1 20 drwx------. 2 mysql mysql 4096 Nov 9 14:50 mysql 21 -rw-rw----. 1 mysql mysql 107 Nov 9 15:26 mysql-bin.000001 #这是二进制日志滚动文件,也就是说每次重启服务,都会自动生成一个新的文件。 22 -rw-rw----. 1 mysql mysql 19 Nov 9 15:26 mysql-bin.index #二进制的索引文件。 23 drwx------. 2 mysql mysql 4096 Nov 9 14:50 performance_schema 24 drwx------. 2 mysql mysql 4096 Nov 9 14:50 test 25 -rw-r--r--. 1 root root 0 Nov 9 15:25 yinzhengjie.err #这是错误日志,注意日志的名称是以主机名定义的哟,pid文件也是。 26 -rw-rw----. 1 mysql mysql 5 Nov 9 15:26 yinzhengjie.pid #这个是pid文件 27 [[email protected] mysql]#