MySQL是多用户,多线程的SQL数据库服务器。
管理软件:命令行:mysql,mysqladmin
图形管理工具:mysql administrator,mysql query brower和mysql workbench
web界面管理工具:phpMyAdmin,phpMyBackupPro
二所ATC系统
:目前全系统均运行在linux advanced server 5.8上,各子系统均安装32位操作系统。
数据库版本:MySQL-server-community-5.1.42-0.rhel4
备份数据库:
mysqldump –uroot –pabc atcdb
--opt –R>/root/ZZZZ.bak
备份与所属现场有关的表数据:
mysqldump –uroot –pabc
atcdb --tables tablename > tablename.bak
mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
--add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
--add-drop-table
在每个create语句之前增加一个drop table。
--allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, --complete-insert
使用完整的insert语句(用列名字)。
-C, --compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
--delayed
用INSERT DELAYED命令插入行。
-e, --extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-l, --lock-tables.
为开始导出锁定所有表。
-q, --quick
不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。
--routines, -R
导出存储过程以及自定义函数。
--------------------------------------------------------------------------------------------
二所ATC数据库使用的是:MyISAM存储引擎,表存储成3个文件
frm:存储表的结构
myd存储数据
myi存储索引
MyISAM不支持事务的完整性和并发性。
mysql的配置文件是/etc/my.cnf
查看表的存储引擎:
1、show table status from atcdb where name='tab_routes' \G;
Engine: MyISAM
2、 show create table tab_routes' \G;
数据文件存储目录:/var/lib/mysql
默认字符集:
show variables like 'collation_%';
collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
show variables like 'character_set__%';
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/
MySQL的字符集支持(Character Set Support)有两个方面:
字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢? (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
(2) 还有一种修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,至于为什么没有这个文件而MySQL却也能正常启动和作用,在这有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动;
!第二种说法,MySQL在启动时自动使用/usr/share/目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL。(验证:将my-medium.cnf改名后mysql可以启动,说明不是使用这个文件,前提条件:/etc/下没有my.cnf)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7970627/viewspace-766225/
,如需转载,请注明出处,否则将追究法律责任。