MySQL数据库(6)----配置文件 my.cnf 的使用
1. 使用源码安装好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索顺序:
root@javis:~$ mysqld --help --verbose | grep -B1 -i "my.cnf"
-- :: [Note] mysqld (mysqld 5.6.) starting as process ...
-- :: [Note] Plugin 'FEDERATED' is disabled.
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf /usr/local/mysql/my.cnf ~/.my.cnf
--
-P, --port=# Port number to use for connection or to default to,
my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default
-- :: [Note] Binlog end
-- :: [Note] Shutting down plugin 'MyISAM'
-- :: [Note] Shutting down plugin 'CSV'
可以看到,红色标记的那一段话显示搜索 my.cnf 的顺序为 /etc/mysql/my.cnf、/etc/my.cnf、/usr/local/mysql/my.cnf、~/.my.cnf。
使用 'ls /etc/mysql' 命令查看到本机没有 /etc/mysql 目录。为了加快搜索速度,将 my.cnf 文件从 /usr/local/mysql/my.cnf 移动到 /etc/my.cnf
mv /usr/local/mysql/my.cnf /etc/my.cnf
2. 配置 my.cnf ,是MySQL默认使用小写的名字来对数据库和表进行命名。
UNIX/Linux系统上的MySQL会区分数据库和表名字的大小写。解决此问题的一种办法是,固定使用一种大小写形式的名字。另一种办法是,在启动服务器时,将 lower_case_table_names 系统变量设置为1,这个设置有下面两个效果:
(i)在为某个表创建相应的磁盘文件之前,服务器会先把该表的名字转换为小写。
(ii)在语句里引用这个表时,服务器会在试图到磁盘上查找这个表之前,把它的名字转换为小写。
这种做法的结果是,不管文件系统是否区分大小写,所有名字都不会区分大小写。如此一来,在系统间移动数据库和表会变得容易。不过,这里提醒一下,如果打算使用这种策略,则必须在开始创建数据库或表之前(而不是之后)通过服务器配置,将 lower_case_table_names 系统变量设置为1。如果在设置此变量之前,已经创建了数据库或表,而且其名字里包含大写字母,那么这个设置将无法产生预期的效果,因为磁盘里已经存储了某些不全为小写字母的名字。为避免出现这个问题,可以先把名字里有大写字母的表全部重新命名为小写字母形式,然后再来设置 lower_case_table_names 系统变量。(可以用 ALTER TABLE 或 RENAME TABLE 语句来重新命名表。)如果有很多表需要重新命名,或者有许多数据库的名字包含大小写字母,那么更简单的办法是选转储这些数据库,然后在设置了 lower_case_table_names 系统变量之后,再重新创建它们。步骤如下:
(1)用 mysqldump 工具将各个数据库转储出来:
% mysqldump --database -p -uroot db_name > db_name.sql
(2)用 DROP DATABASE 语句删除这些数据库。
(3)关闭服务器,配置 my.cnf 文件,添加 'lower_case_table_names=1' 语句,然后重启 mysqld 服务器。
(4)用mysql 程序重新加载所有的转储文件:
% msyql -p -uroot < db_name.sql
由于设置了 lower_case_table_names,所有的数据库和表在重新创建之后在磁盘里的名字将全部为小写。
示例如下:
mysql> CREATE TABLE MyTABle (Name varchar(1), id int not null auto_increment , primary key (id) );
Query OK, 0 rows affected (0.29 sec)
mysql> show tables;
+------------------+
| Tables_in_sampdb |
+------------------+
| absence |
| grade_event |
| member |
| mytable |
| president |
| score |
| student |
+------------------+
7 rows in set (0.00 sec)
mysql> desc mytable;
+-------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+----------------+
| Name | varchar(1) | YES | | NULL | |
| id | int(11) | NO | PRI | NULL | auto_increment |
+-------+------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
由上可见,使用 CREATE TABLE 命令创建了 MyTABle 表,但MySQL按照默认的 lower_case_table_names 设置,将表名存储为 'mytable'。并且由 'desc mytable' 命令可以看出,lower_case_table_names 并没有影响到 column_name,因为 mytable 表的Name列的列名依然为 Name。
MySQL数据库(6)----配置文件 my.cnf 的使用的更多相关文章
- mysql linux查看配置文件my.cnf位置
原文:mysql linux查看配置文件my.cnf位置 命令: mysql --help | grep 'Default options' -A 1
- MySQL数据库中配置文件 read_only 参数的有关说明
1.对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置: 将MySQL设置为只读状态的命令(可以登录mysql执行下面命令, 或者在my.cnf配置文件中添加& ...
- Java链接MySQL数据库的配置文件
文件名:db.properties(随便) driver = com.mysql.jdbc.Driver //MySQL数据库驱动名url = jdbc:mysql://localhost:3306 ...
- Mysql数据库服务器配置文件/etc/my.cnf的详细配置
以下是 Mysql数 据库服务器配置文件 /etc/my.cnf的详细配置.应用场合是 InnoDB引擎, 4核 CPU, 32位SUSE. [client] port = 3306 ...
- 如果不知道MySQL当前使用配置文件(my.cnf)的路径的解决方法
如果不知道当前使用的配置文件的路径,可以尝试下面的操作: # which mysqld /usr/local/mysql/bin/mysqld # /usr/local/mysql/bin/mysql ...
- Linux下MySql的配置文件my.cnf详细 讲解
经常在使用MySql,但是对于MySql下面的各种参数的配置并不是很熟悉,经常在需要改变某项参数的时候,还要到处在网上查找,有点不方便.今天想把MySql下面的配置文件my.cnf详细的做一个说明(L ...
- 详解MySql的配置文件my.cnf
1.Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录. 2.Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.c ...
- shell脚本连接、读写、操作mysql数据库实例
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- shell中读写mysql数据库
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
随机推荐
- 嵌入式C语言自我修养 05:零长度数组
5.1 什么是零长度数组 顾名思义,零长度数组就是长度为0的数组. ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的.在ANSI C 中定义一个数组的 ...
- 1.由于测试某个功能,需要生成500W条数据的txt,python代码如下
txt内容是手机号,数量500W,采用python代码生成,用时60S,本人技能有限,看官如果有更快的写法,欢迎留言交流. import random f = open("D:\\data. ...
- springboot(十二)-分布式锁(redis)
什么是分布式锁? 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁.进程锁. 线程锁:主要用来给方法.代码块加锁.当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段.线程锁只在同一 ...
- C# TCPClient简单示例
示例使用方法参考 示例 以下一个简单的异步事件TCP客户端实现 using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; usi ...
- shiro学习笔记_0700_整合ssm
现在最流行的框架就是ssm,学到最后,shiro在实际开发中,也就的整合框架.首先spring是少不了的,shiro也提供了和spring的整合包. 首先,新建maven项目: maven依赖: &l ...
- c++ 网络编程课设入门超详细教程 ---目录
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9663167.html c++ 网络编程(一)TCP/UDP windows/linux 下入门 ...
- python-fifo管道文件通信
#!/usr/bin/python #coding=utf-8 import os,sys,multiprocessing,time try: os.mkfifo('file') except :pa ...
- SharePoint 2007 form.js兼容性修改
因SharePoint 2007发布时微软的主要IE的版本是7,所以其中不少的JS是不规范的,在新的IE8 9 10 11等版本中碰到不少的问题,以下是部分的修复,记录下,不断完善. ()语法问题 d ...
- CentOS 7_64位系统下搭建Hadoop_2.8.0分布式环境
准备条件: CentOS 7 64位操作系统 | 选择minimal版本即可(不带可视化桌面环境),也可以选择带完整版Hadoop-2.8.0 | 本文采用的是Hadoop-2.8.0版本.JDK1. ...
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...