mysql 的一些常见问题
2015-05-07 14:00
183 查看
1.解决mysql–Can’t get stat of ” (Errcode: 13)
今天在导入mysql数据的时候,出现下面的错误:mysql> load data infile '/root/aaa' into table test fields terminated by ',' lines terminated by '\n'; mysql> ERROR 13 (HY000): Can't get stat of '/root/aaa' (Errcode: 13) mysql> load data infile '/root/Downloads/roster.txt' into table ofRoster; 13 - Can't get stat of '/root/Downloads/roster.txt' (Errcode: 13)
开始还以为是/root/aaa文件权限或者是mysql的root用户权限的问题,后来想不对呀,mysql的root用户是超级用户,肯定有权限的,那问题就出在/root/aaa文件的权限上,后来把/root/aaa的权限改成777,执行操作后还是不行。
呵呵,原来是aaa文件所在的文件目录权限的问题,这个好办,换到/tmp/aaa,执行上述操作看看:
mysql> load data infile '/tmp/aaa' into table users_groups fields terminated by ',' lines terminated by '\n'; Query OK, 14 rows affected (0.01 sec) Records: 14 Deleted: 0 Skipped: 0 Warnings: 0
ok,成功了!
之所以要用/tmp目录的原因是mysql默认使用了/tmp作为临时读写目录。
mysql> show variables like '%tmpdir%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | slave_load_tmpdir | /tmp | | tmpdir | /tmp | +-------------------+-------+ 2 rows in set (0.00 sec)
FIELDS TERMINATED BY
FIELDS TERMINATED BY 子句定义用于在输入文件中区分字段结束位置的分隔符。您必须通过下列三种方法中的一种方法来指定此字符:
括在双引号中,例如 “:”
括在单引号中,例如 ‘:’
以十六进制格式指定,例如 X’3A’
使用十六进制格式时,必须使用单引号,而不能使用双引号。
注意,FIELDS TERMINATED BY 子句指定分隔符,而不是真正的终止符;在最后一个字段之后,指定的字符不是必需的。例如,如果分隔符是冒号,那么下面这两种数据文件格式等同并且都有效:
1:2:3:
或者
1:2:3
注意,接受最后一个字段后面的尾部冒号,但该冒号不是必需的。
当列数据本身包含用于括住列数据的字符时,请在 FIELDS TERMINATED BY 子句后面使用 OPTIONALLY ENCLOSED BY 子句。以下是一个控制文件示例:
FIELDS TERMINATED BY ‘,’
OPTIONALLY ENCLOSED BY “’”
在以上示例中,分隔符是逗号。
243修改配置文件 增加 /tmp/mysqldata/ r, /tmp/mysqldata/* rw,
root@dpi-test-1:/tmp/mysqldata# cat /etc/apparmor.d/usr.sbin.mysqld # vim:syntax=apparmor # Last Modified: Tue Jun 19 17:37:30 2007 #include <tunables/global> /usr/sbin/mysqld { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> #include <abstractions/mysql> #include <abstractions/winbind> capability dac_override, capability sys_resource, capability setgid, capability setuid, network tcp, /etc/hosts.allow r, /etc/hosts.deny r, /etc/mysql/*.pem r, /etc/mysql/conf.d/ r, /etc/mysql/conf.d/* r, /etc/mysql/*.cnf r, /usr/lib/mysql/plugin/ r, /usr/lib/mysql/plugin/*.so* mr, /usr/sbin/mysqld mr, /usr/share/mysql/** r, /var/log/mysql.log rw, /var/log/mysql.err rw, /var/lib/mysql/ r, /var/lib/mysql/** rwk, /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid rw, /var/run/mysqld/mysqld.sock w, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock w, /sys/devices/system/cpu/ r, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.mysqld> } root@dpi-test-1:/tmp/mysqldata# vi /etc/apparmor.d/usr.sbin.mysqld # vim:syntax=apparmor # Last Modified: Tue Jun 19 17:37:30 2007 #include <tunables/global> /usr/sbin/mysqld { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> #include <abstractions/mysql> #include <abstractions/winbind> capability dac_override, capability sys_resource, capability setgid, capability setuid, network tcp, /etc/hosts.allow r, /etc/hosts.deny r, /etc/mysql/*.pem r, /etc/mysql/conf.d/ r, /etc/mysql/conf.d/* r, /etc/mysql/*.cnf r, /usr/lib/mysql/plugin/ r, /usr/lib/mysql/plugin/*.so* mr, /usr/sbin/mysqld mr, /usr/share/mysql/** r, /var/log/mysql.log rw, /var/log/mysql.err rw, /var/lib/mysql/ r, /var/lib/mysql/** rwk, /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid rw, /var/run/mysqld/mysqld.sock w, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock w, /sys/devices/system/cpu/ r, /tmp/mysqldata/ r, /tmp/mysqldata/* rw, /etc/apparmor.d/usr.sbin.mysqld 48L, 1094C written root@dpi-test-1:/tmp/mysqldata# ^C root@dpi-test-1:/tmp/mysqldata# time mysqlimport -uroot -pimtest test /tmp/mysqldata/ofID.txt mysqlimport: Error: 29, File '/tmp/mysqldata/ofID.txt' not found (Errcode: 13), when using table: ofID real 0m0.006s user 0m0.004s sys 0m0.000s root@dpi-test-1:/tmp/mysqldata# sudo /etc/init.d/apparmor reload * Reloading AppArmor profiles Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd ...done.
PS参考:
http://publib.boulder.ibm.com/infocenter/soliddb/v6r3/index.jsp?topic=/com.ibm.swg.im.soliddb.admin.doc/doc/fields.terminated.by.html
http://docs.oracle.com/cd/E17952_01/refman-5.6-en/mysqldump-delimited-text.html
2.外键关联不上
mysql> SHOW ENGINE INNODB STATUS; | Type | Name | Status | InnoDB | | ===================================== 2015-03-17 15:25:31 5fc INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 30 seconds ----------------- BACKGROUND THREAD ----------------- srv_master_thread loops: 75 srv_active, 0 srv_shutdown, 5559 srv_idle srv_master_thread log flush and writes: 5634 ---------- SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 303 OS WAIT ARRAY INFO: signal count 361 Mutex spin waits 72, rounds 1532, OS waits 40 RW-shared spins 233, rounds 7320, OS waits 244 RW-excl spins 8, rounds 1347, OS waits 19 Spin rounds per wait: 21.28 mutex, 31.42 RW-shared, 168.38 RW-excl ------------------------ LATEST FOREIGN KEY ERROR ------------------------ 2015-03-17 15:24:47 5fc Error in foreign key constraint of table test1/#sql-13e4_23: FOREIGN KEY (`bookID`) REFERENCES `book` (`bookID`): Cannot find an index in the referenced table where the referenced columns appear as the first columns, or column types in the table and the referenced table do not match for constraint. Note that the internal storage type of ENUM and SET changed in tables created with >= InnoDB-4.1.12, and such columns in old tables cannot be referenced by such columns in new tables. See http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html for correct foreign key definition. ------------ TRANSACTIONS ------------ Trx id counter 80924 Purge done for trx's n:o < 80911 undo n:o < 0 state: running but idle History list length 693 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started MySQL thread id 35, OS thread handle 0x5fc, query id 2010 localhost 127.0.0.1 root init SHOW ENGINE INNODB STATUS ---TRANSACTION 80906, not started MySQL thread id 34, OS thread handle 0x1e58, query id 2005 localhost 127.0.0.1 root cleaning up -------- FILE I/O -------- I/O thread 0 state: wait Windows aio (insert buffer thread) I/O thread 1 state: wait Windows aio (log thread) I/O thread 2 state: wait Windows aio (read thread) I/O thread 3 state: wait Windows aio (read thread) I/O thread 4 state: wait Windows aio (read thread) I/O thread 5 state: wait Windows aio (read thread) I/O thread 6 state: wait Windows aio (write thread) I/O thread 7 state: wait Windows aio (write thread) I/O thread 8 state: wait Windows aio (write thread) I/O thread 9 state: wait Windows aio (write thread) Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] , ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 Pending flushes (fsync) log: 0; buffer pool: 0 617 OS file reads, 3024 OS file writes, 1203 OS fsyncs 0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 0, seg size 2, 0 merges merged operations: insert 0, delete mark 0, delete 0 discarded operations: insert 0, delete mark 0, delete 0 Hash table size 1106407, node heap has 2 buffer(s) 0.00 hash searches/s, 0.00 non-hash searches/s --- LOG --- Log sequence number 102690638 Log flushed up to 102690638 Pages flushed up to 102690638 Last checkpoint at 102690638 0 pending log writes, 0 pending chkp writes 627 log i/o's done, 0.00 log i/o's/second ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 549715968; in additional pool allocated 0 Dictionary memory allocated 115188 Buffer pool size 32768 Free buffers 31878 Database pages 888 Old database pages 307 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 585, not young 14 0.00 youngs/s, 0.00 non-youngs/s Pages read 560, created 338, written 2026 0.00 reads/s, 0.00 creates/s, 0.00 writes/s No buffer pool page gets since the last printout Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 888, unzip_LRU len: 0 I/O sum[9]:cur[0], unzip sum[0]:cur[0] -------------- ROW OPERATIONS -------------- 0 queries inside InnoDB, 0 queries in queue 0 read views open inside InnoDB Main thread id 7500, state: sleeping Number of rows inserted 0, updated 0, deleted 0, read 0 0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s ---------------------------- END OF INNODB MONITOR OUTPUT ============================ | 1 row in set
3.启动定时器,让定时器定期执行存储过程。
window 直接更改my.ini ,找到event_scheduler改为1;show variables like '%event%'; set global event_scheduler=1;
my.cnf中的[mysqld]部分添加如下内容,然后重启mysql(mysql重启命令:service mysqld restart)
event_scheduler=ON
[root@tingshuotong test]# whereis my.cnf my: /etc/my.cnf
4.如何找到mysql的配置文件?
1. 先确定出使用的配置文件的路径(如果未启动,可先启动)
ps aux | grep mysql
找见mysqld或mysqld_safe的那一行,看下defaults-file=/path/file ,那个/path/file就是配置文件路径;如果没有显示,如下:
1 进程显示说明没有使用到配置文件,采用的是默认的选项。
2 你启动mysql服务的方式是什么?
如果是通过 /etc/init.d/mysql 启动的,应该会默认读取 /etc/my.cnf ;如果没起作用的话,在/etc/init.d/mysql 文件的(datadir= )下面加上一行:cnf_file=/etc/my.cnf
2. 也可以直接创建 /etc/my.cnf
从你安装的mysql的相关目录中(可能是/usr/include/mysql或/usr/share/mysql)找一个my.cnf 或 my-small.cnf 拷贝为/etc/my.cnf,mysql启动时会优先使用这个配置文件。3. 添加常用配置
在配置文件中的[mysqld]下边加些常用 的东西吧:max_allowed_packet=32M character_set_server=gbk
相关文章推荐
- MySQL主主复制以及常见的一些问题
- 有关MySQL表类型和一些常见的问题
- CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
- MYSQL查询优化及一些常见问题
- Mysql实践(二)一些常见问题处理
- Linux 安装 MySQL 以及 一些常见问题解决方案
- Ubuntu Server9 + Tomcat + mysql + Jdk 安装后遇到的一些常见问题
- linux下的安装mysql与遇到一些常见问题的解决方法
- 关于mysql常见的问题(一些常见问题的解决方案)
- mysql的安装及一些常见的问题
- CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
- mysql 常见的一些问题
- Weblogic10.3项目部署出错的一些常见问题
- ArcGIS Engine 10开发环境的一些常见问题
- 数据仓库的一些常见问题
- mysql远程登陆和本地登陆的一些问题
- linux下关于mysql安装的一些问题
- Sql server一些常见性能问题的总结
- 首发:Linux+Apache+PHP+MySQL+Zend Optimizer+PHPMyAdmin安装及常见问题