DBA3 数据导入导出,管理表记录,空行匹配 mysql存储引擎

一,数据导入  数据导出

导入导出数据的默认存储文件路径是/var/lib/mysql-files

show variables  like  "secure_file_priv";

自定义数据导出,导入文件存储的目录

oot@host50 ~]# mkdir /mydata
[root@host50 ~]# chown mysql /mydata/
[root@host50 ~]# vim /etc/my.cnf      [mysqld]下面写入创建目录       secure_file_priv=自定义目录
[root@host50 ~]# systemctl restart mysqld

数据导入:把系统文件的内容存储到数据库服务器的表里。

有格式规律

导入数据的步骤:

1。把系统文件拷贝指定的目录下

mysql> system  cp  /etc/passwd  /mydata/
mysql> system  ls  /mydata

2.创建存储文件内容的表

扫描二维码关注公众号,回复: 2159638 查看本文章

mysql> create table db3.user(name char(50),
    -> password  char(1),
    -> uid  int(2),
    -> gid  int(2),
    -> comment  varchar(150),
    -> homedir char(150),
    -> shell char(50),
    -> index(name));
mysql> desc user;

导入数据:1,字段分隔符要与文件内的一致2,指定导入文件的绝对路径3,导入数据的表字段类型要与文件字段匹配4,禁用Selinex保护机制

3.导入数据(格式:load  data  infile  "目录名/文件名"  into table 表名 fields  terminated by  "分隔符  " lines terminatedby"\n";

mysql> load  data   infile  "/mydata/passwd"   into  table db3.user  fields terminated by ":" lines terminated by "\n";
mysql> select * from user;   (导入数据)

mysql> alter table user add id int(2) primary key auto_increment first;   (   加行号自动增长)
mysql> select * from user;

mysql> select * from user  where id=15;     (寻找某一个id)

数据导出:1.导出的内容由SQL的语句决定2.导出的是表中的记录,不包括字段名 3.禁用Slinux

数据导出:把数据库服务器的表里的记录存储到系统文件里。

格式:sql查询命令  into  outfile  "目录名/文件名"  fields terminated by "分隔符" lines terminated by "\n"

mysql> select * from t1 into outfile "/mydata/t1.txt";

mysql> select * from t1 into outfile "/mydata/t2.txst" fields terminated by "#";

mysql> select * from t1 into outfile "/mydata/t3.txt" fields terminated by "#" lines terminated by "!!!";

二:管理表记录

管理表记录

添加表记录   格式: insert  into 表名  values(字段值列表)       (给所有的字段赋值)

                    格式2:insert  into  表名  values(字段值列表),.....添加n条

mysql> insert into user
    -> values
    -> (42,"bob","x",2000,2000,"student user","/home/bob","/bin/bash");

mysql> insert into user values(43,"bob","x",2000,2000,"student user","/home/bob","/bin/bash");

格式3:  insert  into  表名(字段名列表)values(字段值列表);             (给指定的字段赋值)

格式4:insert  into   (字段名列表)values(字段值列表),...添加n条

mysql> insert into user (name,shell,uid)
    -> values

    ->("lucy","/sbin/nologin",1998);

mysql> insert into user (name,shell,uid) values ("tom","/sbin/nologin",1928);
mysql> insert into user (name,shell,uid) values ("alice","/sbin/nologin",1948);
语法注意格式:字段值要与字段型相匹配
                         2.对于字段类型的字段,要用双引或单引括起来
                         3.依次给所有的字段赋值时,字段名可以省略

                     4.只给一部分赋值时,必须明确写出相应的名称

查询记录 select

格式:select 字段1, ..字段n    from   表名;

格式2:select  字段1,..,字段n  from  表名;   where   条件表达式;

select  *  from user;

mysql> select name,uid,shell from user where shell="/bin/bash";

mysql> select name,uid,shell from user;


更新记录字段的值  update

格式:update  表  set   字段名=值,字段名n=值n,...where  条件;   (只更新符合条件的部分记录)注意:不使用where会更新所有记录。

       格式:update  表 set  字段名=值,字段名n=值n       (更新表内的所有内容)

update user  set  password="a",gid=1000;

update  user  set password="x",where id=1;     (只更新符合条件的部分记录)

select password ,gid from user;

删除记录  delete

格式:delete  from  表  where  条件;   (仅删除符合条件的记录)

格式:delete   from   表         (删除所有记录)

delete  from  t1;

select *  from  t1;

select * from user where name="bob";

delete from user where name="bob";

select * from user where name="bob";

三:匹配条件的表达式:

匹配条件的表示方式(select  update delete

格式:where  字段名   符号  数值                                                        数值比较:类型:>(大于)<(小于)=(等于)!=(不等于mysql> select  * from user  where  id <=10;                                               >=(大于或不等于)<=(小于或等于)
mysql> select name,uid from user where uid=9;
mysql> select name,uid,gid from user where uid=gid;

字符比较:where  字段名  符号   "值"                                                                     字符比较  非空  匹配空

mysql> select name,shell from user where shell != "/bin/bash";          =(相等) !=(不相等) is  null(匹配空)is null not(非空)

匹配空  :is  null      is       not     null

insert into user(id,name)values(51,""),(52,"null"),(53,"null");

select id,name  from user where id>=51;

mysql> select id,name from user where name is null;

mysql> select id,name from user where name="null"

mysql> select id,name from user where name="";

mysql> select name,shell from user where shell is not null;

mysql> select id,name,shell from user where shell is null;

mysql> update user set password=null where name="bin";

mysql> select * from user where name="bin";

逻辑比较:and(与)  or(或)  ! not(非)     ()(提高优先级)

mysql> select * from user where name="root" and uid=1 and shell="/bin/bash";
mysql> select name,uid from user where name="root" or uid=1;
mysql> select name,uid from user

    -> where name="root" or name="bin" and uid=1;


mysql> select name,uid from user where (name="root"  or name="bin") and uid=1;     (提高优先级)

范围内匹配:

mysql> select name from user where name in("root","sync","lucy","bob");

mysql> select name,uid from user where uid in (1,7,27,1000);

mysql> select name,shell from user where shell not in ("/bin/bash","/sbin/nologin");

mysql> select * from user where uid between 10 and 20;

mysql> select * from user where uid>=10 and uid<=20;

distinct  (只适合select查询使用)

mysql> select shell from user;

mysql> select distinct shell from user;

mysql> select shell from user where uid <=500;

mysql> select distinct shell from user where uid <=500;

四:高级匹配条件

模糊查询

-匹配任意一个字符

%匹配零个或多个字符

格式:where  字段名  like  '表达式';

select  name  from  user  where  name  like  '_';

mysql> select name from t2 where name like '%a%';

mysql> select name from t2 where name like '%-%';

mysql> select name from t2 where name like '%';

五:正则表达式:

where  字段名  regexp   '正则表达式'                                           正则元字符:^  $   .    []     *   |

select name  from  user  where  name  regexp  '^a.*t$';            

insert into user(name)values("ya9ya"),("7yaya"),("yaya");

select   name  from user where  name regexp  '[0-9];

select  name  from t1 where  name  regexp '^[0-9]';

select  name  from t1 where  name  regexp '[0-9]$';

select  name,uid  from t1 where  uid  regexp '..';
select  name,uid  from t1 where  uid  regexp '^..$';



六:四则计算:+  -  *  /  %(字段类型  必须是数值类型)               四则运算数则类型:+   -    *  (乘法)  / (除法)   %  (取余数)

update  user  set  uid=uid+1  where   id<=10;

select name,uid,gid ,uid+gid jiehuo from  user  where  name="root";

mysql> select name,uid,gid,(uid + gid) / 2 pjjz from t1 where name="root";

mysql> alter table t1 add age tinyint(2) unsigned default 18 after name;

mysql> select name,age from t1 where name ="root";

ysql> select name,age,2018-age s_year from t1 where name="root";

七:聚集函数(MYSQL服务自带的对数据做统计的命令)           MYSQL       内置数据统计函数     :  

avg(字段名)统计字段平均值   sum(字段名)统计字段之和)    min(字段名)统计字段最小值)   max(字段名)统计字段最大值  count(字段名)统计字段值个数

mysql> select sum(uid) from t1;                                

mysql> select sum(uid) from t1 where id<=10;

mysql> select avg(uid) from t1 where id<=10;

mysql> select min(uid) from t1 where id<=10;

mysql> select max(uid) from t1 where id<=10;

mysql> select name from t1 where shell="/bin/bash";

mysql> select sum(uid),avg(uid),max(uid),min(gid) from t1;

mysql> select name from t1 where shell="/bin/bash";

mysql> select count(name) from t1 where shell="/bin/bash";

mysql> select count(id),count(name) from t1;

八:操作查询结果  select .... from  user    where   ....    ;

格式:

select  查询  from  group   by  字段名(通常是字符型字段);查询分组

mysql> select shell from t1;

mysql> select  shell from t1 group by shell;
mysql> select distinct shell from t1;

select 查询 from  order  by  字段名(通常是数值类型字段)   排序方式;    排序【asc |  desc】

mysql> select name,uid from t1 where uid>=10 and uid<=500;
mysql> select name,uid from t1 where uid>=10 and uid<=500 order by uid desc;


limit 限制查询结果显示的行数

格式:

sql查询    limit  n;显示当前结果前n条记录

sql查询    limit   n,m;显示指定范围内的查询记录

sql查询   limit    where  条件查询  limit   3; 显示查询结果前3条记录

sal查询    where   条件查询   limit  3,3;从第4条开始,共显示3条

select   查询 from  limit  数字1,   显示查询结果的前几行

select   查询  from  limit  数字1, 数字2;  显示指定范围内的行;     ( 0表示第1行)

mysql> select name,shell from t1;
mysql> select name,shell from t1 limit 5;
mysql> select name,shell from t1 where uid <=500;
mysql> select name,shell from t1 where uid <=500 limit 2;
mysql> select name,shell from t1 where uid <=500 limit 1,5;
mysql> select * from t1;
mysql> select * from t1 limit 4,3;


having 条件  在查询结果里查找数据

格式:

select    查询  from  having   条件表达式;

sql查询  where  条件  having   条件表达式;

sql查询   group  by   字段名  having   条件表达式;

select name  from   t1   where  in<=10  having  条件;

ysql> select name,uid from t1 where uid >=1000 having name is null;

mysql> select name,uid from t1 where uid >=1000 having uid=65534;
mysql> select name,uid from t1 where uid >=1000 having name="bob";







数据库管理
NSD DBA 基础
DAY03内容
09:00 ~ 09:30
上午
下午
09:30 ~ 10:20
10:30 ~ 11:20
作业讲解和回顾
MySQL 存储引擎
11:30 ~ 12:00 数据导入导出
14:00 ~ 14:50 管理表记录
15:00 ~ 15:50
16:10 ~ 17:00
17:10 ~ 18:00
匹配条件
总结和答疑MySQL 存储引擎
MySQL 工作原理
MySQL 体系结构
MySQL 存储引擎
MySQL 存储引擎
存储引擎的配置
修改表的存储引擎
设置默认存储引擎
存储引擎特点
MyISAM 存储引擎
InnoDB 存储引擎
MySQL 锁机制
事务特性 (ACID)MySQL 工作原理MySQL 体系结构




各种存储
引擎组件
SQL 接口 / 解析器 / 优化器 / 缓存MySQL 存储引擎
• 作为可插拔式的组件提供




– MySQL 服务软件自带的功能程序,处理表的处理器
– 不同的存储引擎有不同的功能和数据存储方式
• 默认的存储引擎
– MySQL 5.0/5.1 ---> MyISAM
– MySQL 5.5/5.6 ---> InnoDBMySQL 存储引擎 ( 续 1)
• 列出可用的存储引擎类型
– SHOW ENGINES; 或 SHOW ENGINES\G



解存储引擎的配置修改表的存储引擎
• 建表时手动指定




– 未指定时,使用默认存储引擎
– SHOW CREATE TABLE xxx\G ;可确认设置默认存储引擎
• 修改 /etc/my.cnf 配置文件
– default-storage-engine=xxxx




[root@dbsvr1 ~]# vim /etc/my.cnf
[mysqld]
.. ..
default-storage-engine=InnoDB
[root@dbsvr1 ~]# service mysql restart
Shutng down MySQL....
[ 确定 ]
Startng MySQL........
[ 确定 ]存储引擎特点Myisam 存储引擎
• 主要特点




– 支持表级锁
– 不支持事务、事务回滚、外键
• 相关的表文件
– 表名 .frm 、
– 表名 .MYI
– 表名 .MYDInnoDB 存储引擎
• 主要特点




– 支持行级锁定
– 支持事务、事务回滚、支持外键
• 相关的表文件
– xxx.frm 、 xxx.ibd
– ibdata1
– ib_logfile0
– ib_logfile1MySQL 锁机制
• 锁粒度




– 表级锁:一次直接对整张表进行加锁。
– 行级锁:只锁定某一行。
– 页级锁:对整个页面( MySQL 管理数据的基本存储单
位)进行加锁。
• 锁类型
– 读锁(共享锁):支持并发读。
– 写锁(互斥锁、排它锁):是独占锁,上锁期间其他
线程不能读表或写表。MySQL 锁机制(续 1 )
• 查看当前的锁状态
– 检查 Table_lock 开头的变量, % 作通配符



解事务特性 (ACID)
• Atomic :原子性




– 事务的整个操作是一个整体,不可分割,要么全部成
功,要么全部失败。
• Consistency : 一致性
– 事务操作的前后,表中的记录没有变化。
• Isolation :隔离性
– 事务操作是相互隔离不受影响的。
• Durability :持久性
– 数据一旦提交,不可改变,永久改变表数据事务特性 (ACID) (续 1 )
• 示例




mysql> show variables like "autocommit"; // 查看提交状态
mysql> set autocommit=off; // 关闭自动提交
mysql> rollback ; // 数据回滚
mysql> commit; // 提交数据案例 1 : MySQL 存储引擎的配置
1. 可用的存储引擎类型
2. 查看默认存储类型




3. 更改表的存储引擎数据导入导出
数据导入导出
数据导入导出
设置搜索路径
数据导入
数据导出数据导入导出设置搜索路径
• 查看默认使用目录及目录是否存在




mysql> show variables like "secure_file_priv";
+------------------+-----------------------+
| Variable_name | Value
|
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
[root@localhost ~]# ls -ld /var/lib/mysql-files/
drwxr-x---. 2 mysql mysql 31 4 月 19 14:15 /var/lib/mysql-files/设置搜索路径(续 1 )
• 修改目录及查看修改结果




[root@localhost ~]# mkdir /myload ; chown mysql /myload
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
secure_file_priv="/myload"
[root@localhost ~]# systemctl restart mysqld
mysql> show variables like "secure_file_priv";
+------------------+----------+
| Variable_name | Value
|
+------------------+----------+
| secure_file_priv | /myload/ |
+------------------+----------+数据导入
• 基本用法
– LOAD DATA INFILE “ 目录名 / 文件名”
INTO TABLE 表名




FIELDS TERMINATED BY “ 分隔符”
LINES TERMINATED BY “\n”;
• 注意事项
– 字段分隔符要与文件内的一致
– 指定导入文件的绝对路径
– 导入数据的表字段类型要与文件字段匹配
– 禁用 SElinux数据导入(续 1 )
• 案例需求
– 将本地用户的记录导入 userdb 库的 user 表里
– 为每条用户记录添加记录编号




mysql> create database userdb;
mysql> create table userdb.user(
-> name char(50),
-> password char(1),
-> uid int(2),
-> gid int(2),
-> comment varchar(100),
-> homedir char(60),
-> shell char(50),
-> index(name)
-> );
表结构参考 /etc/passwd 文件数据导入(续 2 )
mysql> load data infile "/myload/user.txt" into table userdb.user fields
terminated by ":" lines terminated by "\n";




mysql> alter table userdb.user add id int(2) zerofill primary key
auto_increment first;
mysql> select id ,name,uid from userdb.user limit 3;
+----+-----------+------+
| id | name
| uid |
+----+-----------+------+
| 01 | root
| 0 |
| 02 | bin
| 1 |
| 03 | daemon | 2 |
+----+-----------+------+
3 rows in set (0.00 sec)数据导出
• 基本用法




– SELECT 查询 .. ..
INTO OUTFILE “ 目录名 / 文件名”
FIELDS TERMINATED BY “ 分隔符”
LINES TERMINATED BY “\n”;
• 注意事项
– 导出的内容由 SQL 查询语句决定
– 禁用 SElinux数据导出(续 1 )
• 案例需求




– 导出 userdb 库 user 表中 uid 小于 100 的用户记录
– 导出 mysql 库 user 表的前 10 条记录,只需包括 user
、 host 两个字段的信息
mysql> select * from userdb.user where uid<100 into outfile "/
myload/user2.txt";
Query OK, 18 rows affected (0.00 sec)
mysql> select user,host from mysql.user into outfile "/myload/
user3.txt";
Query OK, 3 rows affected (0.00 sec)案例 2 :数据导入 / 导出
使用 SQL 语句完成下列导出、导入操作:




1 )将 /etc/passwd 文件导入 userdb 库 user 表并给每
条记录加编号
2 )将 userdb 库 user 表中 uid 小于 100 的前 10 条记
录导出,存为 /myload/user2.txt 文件管理表记录
增加表记录
管理表记录
语法格式
查询表记录 语法格式
更新表记录 语法格式
删除表记录 语法格式增加表记录语法格式
• 格式 1 :给所有字段赋值




– INSERT INTO 表名
VALUES
( 字段 1 值, .. .. ,字段 N 值 ) ,
( 字段 1 值, .. .. ,字段 N 值 ) ,
( 字段 1 值, .. .. ,字段 N 值 ) ,
.. .. ;
第 1 条表记录
第 2 条表记录
第 3 条表记录语法格式(续 1 )
• 格式 2 ,给指定字段赋值




– INSERT INTO 表名 ( 字段 1,.. .., 字段 N)
VALUES
( 字段 1 值,字段 2 值,字段 N 值 ) ,
( 字段 1 值,字段 2 值,字段 N 值 ) ,
( 字段 1 值,字段 2 值,字段 N 值 ) ,
.. .. ;
第 1 条表记录
第 2 条表记录
第 3 条表记录语法格式(续 2 )
• 注意事项




– 字段值要与字段类型相匹配
– 对于字符类型的字段,要用双或单引号括起来
– 依次给所有字段赋值时,字段名可以省略
– 只给一部分字段赋值时,必须明确写出对应的字段名称查询表记录语法格式
• 格式 1
– SELECT 字段 1, .. .., 字段 N FROM 表名 ;




• 格式 2
– SELECT 字段 1, .. .., 字段 N FROM 表名
WHERE 条件表达式 ;
• 注意事项
– 使用 * 可匹配所有字段
– 指定表名时,可采用 库名 . 表名 的形式更新表记录语法格式
• 格式 1 ,更新表内的所有记录




– UPDATE 表名
SET
字段 1= 字段 1 值 ,
字段 2= 字段 2 值 ,
字段 N= 字段 N 值 ;语法格式(续 1 )
• 格式 2 ,只更新符合条件的部分记录




– UPDATE 表名
SET
字段 1= 字段 1 值 ,
字段 2= 字段 2 值 ,
字段 N= 字段 N 值 ;
WHERE 条件表达式 ;语法格式(续 2 )
• 注意事项




– 字段值要与字段类型相匹配
– 对于字符类型的字段,要用双或单引号括起来
– 若不使用 WHERE 限定条件,会更新所有记录
– 限定条件时,只更新匹配条件的记录删除表记录语法格式
• 格式 1 ,仅删除符合条件的记录
– DELETE FROM 表名 WHERE 条件表达式 ;




• 格式 2, 删除所有的表记录
– DELETE FROM 表名 ;案例 3 :操作表记录
• 练习表记录的操作




– 表记录的插入
– 表记录的更新
– 表记录的查询
– 表记录的删除匹配条件
基本查询条件
数值比较
字符比较 / 匹配空 / 非空
逻辑匹配
范围匹配
高级查询条件
匹配条件
模糊查询
正则表达式
聚集函数
四则运算
去重查询
操作查询结果
查询结果排序
查询结果分组
查询结果过滤
限制显示行数基本查询条件数值比较
• 字段类型必须数据数值类型
类 型




mysql> alter table t1 add age tinyint(2) unsigned default 18 after name;
用 途
= 等于
> 、 >= 大于、大于或等于
< 、 <= 小于、小于或等于
!= 不等于字符比较 / 匹配空 / 非空
• 字段类型必须
类 型




用 途
= 相等
!= 不相等
IS NULL 匹配空
IS NOT NULL 非空逻辑比较
• 多个判断条件时使用
类 型




用 途
OR 逻辑或
AND 逻辑与
! 逻辑非
( ) 提高优先级范围内匹配 / 去重显示
• 匹配范围内的任意一个值即可




类 型
用 途
In ( 值列表 ) 在...里...
Not in ( 值列表 ) 不在...里...
Between 数字 1 and 数字
2 在...之间...
DISTINCT 字段名 去重显示高级查询条件模糊匹配
• 基本用法




– WHERE 字段名 LIKE ' 通配字串 '
– 通配符 _ 匹配单个字符
– % 匹配 0~N 个字符
• 示例
– 列出 name 值“以 J 开头或以 Y 结尾”的记录正则匹配
• 基本用法




– WHERE 字段名 REGEXP ' 正则表达式‘
– ^ $ . [ ] *
• 示例
– 列出 name 值“以 J 开头或以 Y 结尾”的记录四则运算
• 运算操作mysql> select name from t2 where name like '%a%';
– 字段必须是数值类型




类 型
用 途
+ 加法
- 减法
* 乘法
/ 除法
% 取余数(求模)聚集函数
• MySQL 内置数据统计函数




– avg( 字段名 ) : 求平均值mysql> select name from t2 where name like '%a%';
– sum( 字段名 ) :求和
– min( 字段名 ) : 统计最小值
– max( 字段名 ) :统计最大值
– count( 字段名 ) :统计个数操作查询结果查询结果排序
• 基本用法




– SQL 查询
ORDER BY 字段名
[ asc | desc ]
通常是数值类型字段查询结果分组
• 基本用法mysql> select min(uid) from t1 where id<=10




– SQL 查询
group by 字段名
通常是字符类型字段查询结果过滤
• 基本用法




– SQL 查询 HAVING 条件表达式;mysql> select name,uid,gid,(uid + gid) / 2 pjjz from t1 where name="root";


– SQL 查询 where 条件 HAVING 条件表达式;
– SQL 查询 group by 字段名
式;
HAVING 条件表达限制查询结果显示行数mysql> select name,uid,gid,(uid + gid) / 2 pjjz from t1 where name="root";


• 基本用法




– SQL 查询 LIMIT N; 显示查询结果前 N 条记录
– SQL 查询 LIMIT N,M ;显示指定范围内的查询记录
– SQL 查询 where 条件查询 LIMIT N ;显示查询
结果前 N 条记录
– SQL 查询 where 条件查询 LIMIT N , M ;显
示指定范围内的查询记录案例 4 :查询及匹配条件
• 练习常见的 SQL 查询及条件设置




– 创建 stu_info 表,并插入数据
– 练习常见 SQL 查询及条件设置总结和答疑
总结和答疑
查询表记录 查询方式总结
数据导入 问题现象
故障分析及排除
数据导出
问题现象
故障分析及排除查询表记录查询方式总结




查询方式 关键字
查询条件 where
分组 / 排序 / 限制条
目数 / 查询结果过滤 order by/group by/limit/having
单表查询 select .. .. from .. .. where .. ..
嵌套查询 select .. .. from .. .. Where .. .. (select .. .. )
多表查询 select .. .. from 表 1, 表 n where .. ..
左连接查询 left .. .. Join .. .. on
右连接查询 right .. .. join .. .. on数据导入问题现象
• 数据导入失败




– 报错 1 : Errcode: 13 - Permission denied: .. ..
– 报错 2 : Data too long for column .....
mysql> load data infile "/tmp/a.txt" into table user fields
terminated by ":" lines terminated by "\n";
ERROR 29 (HY000): File '/tmp/a.txt' not found (Errcode: 13 -
Permission denied)
mysql> load data infile "/tmp/a.txt" into table user fields
terminated by ":" lines terminated by "\n";
ERROR 1406 (22001): Data too long for column 'comment' at row
1故障分析及排除
• 问题 1 :




– SELinux 策略阻止访问文件
mysql> alter table t1 add age tinyint(2) unsigned default 18 after name;
– 可执行 setenforce 0 禁用 SELinux
• 问题 2 :
– 导入数据与字段类型不匹配,需要修改字段类型:
alter table 表 modify 字段名 类型 .. ..数据导出问题现象
• 导出数据保存到自定义目录失败
– 报错: (Errcode: 13 - Permission denied) .. ..




mysql> select user,host from mysql.user into outfile
"/datadir/b.txt";
ERROR 1 (HY000): Can't create/write to file '/datadir/b.txt' (Errcode:
13 - Permission denied)故障分析及排除
• 原因分析
– 对目录没有 w 权限




• 解决办法
– 让 mysql 用户对目录有 w 权限
[root@dbsvr1 ~]# chown mysql /datadir/
[root@dbsvr1 ~]# ls -ld /datadir
drwxr-xr-x. 2 mysql root 4096 5 月 20 23:09 /datadir2)    | YES  |     | NULL    |                |



猜你喜欢

转载自blog.csdn.net/xixi1067087210/article/details/81014659