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 的使用的更多相关文章

  1. mysql linux查看配置文件my.cnf位置

    原文:mysql linux查看配置文件my.cnf位置 命令: mysql --help | grep 'Default options' -A 1

  2. MySQL数据库中配置文件 read_only 参数的有关说明

    1.对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置: 将MySQL设置为只读状态的命令(可以登录mysql执行下面命令, 或者在my.cnf配置文件中添加& ...

  3. Java链接MySQL数据库的配置文件

    文件名:db.properties(随便) driver = com.mysql.jdbc.Driver  //MySQL数据库驱动名url = jdbc:mysql://localhost:3306 ...

  4. Mysql数据库服务器配置文件/etc/my.cnf的详细配置

    以下是 Mysql数 据库服务器配置文件 /etc/my.cnf的详细配置.应用场合是 InnoDB引擎, 4核 CPU, 32位SUSE.   [client] port        = 3306 ...

  5. 如果不知道MySQL当前使用配置文件(my.cnf)的路径的解决方法

    如果不知道当前使用的配置文件的路径,可以尝试下面的操作: # which mysqld /usr/local/mysql/bin/mysqld # /usr/local/mysql/bin/mysql ...

  6. Linux下MySql的配置文件my.cnf详细 讲解

    经常在使用MySql,但是对于MySql下面的各种参数的配置并不是很熟悉,经常在需要改变某项参数的时候,还要到处在网上查找,有点不方便.今天想把MySql下面的配置文件my.cnf详细的做一个说明(L ...

  7. 详解MySql的配置文件my.cnf

    1.Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录. 2.Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.c ...

  8. shell脚本连接、读写、操作mysql数据库实例

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  9. shell中读写mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

随机推荐

  1. CF1083(Round #526 Div. 1) 简要题解

    题目链接 https://codeforces.com/contest/1083 简要题目翻译 题解 A. The Fair Nut and the Best Path 可以忽略掉"任意时刻 ...

  2. 关于莫比乌斯函数的塞 : 莫比乌斯前n项和 , 莫比乌斯函数绝对值的前n项和

    https://ac.nowcoder.com/acm/contest/874#submit/{%22problemIdFilter%22%3A25455%2C%22statusTypeFilter% ...

  3. Linux系统编程:文件I/O编程

    文件I/O操作在Linux编程时是经常会使用到的一个内容,通常可以把比较大的数据写到一个文件中来进行存储或者与其他进程进行数据传输,这样比写到一个全局数组或指针参数来实现还要方便好多. 一.文件常用操 ...

  4. mysql 非安装版的配置

    一直以来都是使用wamp中集成的mysql数据库,今天突然想试试下载一个mysql的zip包进行配置. 一.下载mysql非安装版 下载地址可以到:http://dev.mysql.com/downl ...

  5. mongodb启动失败:child process failed, exited with error number 100

    参考 http://www.dataguru.cn/thread-107361-1-1.html 里面的路径 根据自己的--dbpath的路径  和l--logpath路径去找

  6. 何为cookie?

    何为cookie HTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上 ...

  7. λ(lambda)表达式

    理论阶段 函数接口 函数接口是行为的抽象: 函数接口是数据转换器; java.util.Function包.定义了四个最基础的函数接口: Supplier<T>: 数据提供器,可以提供 T ...

  8. Java reflect 反射 0 java对象的三个阶段

  9. <机器学习实战>读书笔记--logistic回归

    1. 利用logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类. 2.sigmoid函数的分类 Sigmoid函数公式定义 3.梯度上升法    基本思想:要找 ...

  10. Ruby(2): 基本语法上

    表达式和变量: 这两点和其他主流的编程语言基本没有差别,这里直接跳过. 需要注意的是 ruby中 x=x+1 可以写成 x+=1 但是不支持 x++ , x-- 等一元运算符  比较运算符和表达式: ...