解决问题:修改Centos7下/etc/my.cnf配置文件的默认存储引擎不能永久生效

解决问题:修改Centos7下/etc/my.cnf配置文件的默认存储引擎不生效

Centos7系统默认不支持MySQL,而是支持Mariadb,它是MySQL的一个分支。

Mariadb数据库默认的存储引擎为InnoDB。

 

目的:将Mariadb数据库默认的存储引擎由InnoDB修改为MyISAM类型,并且永久生效。

1.修改/etc/my.cnf配置文件
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

#在/etc/my.cnf配置文件最后一行添加如下代码
#指定默认存储引擎为MyISAM类型
default_storage_engine=MyISAM

2.重启数据库服务,使其修改生效
[root@localhost ~]# systemctl restart mariadb

3.登录到数据库,查看其默认存储引擎是否修改成功
[root@localhost ~]# mysql -h localhost -uroot -p971224
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)

现象:明明修改了/etc/my.cnf配置文件的存储引擎,为什么在重启数据库服务之后仍然没有生效呢?

分析:存储引擎仍然为InnoDB说明/etc/my.cnf配置文件里添加的"default_storage_engine=MyISAM"并没有生效

解决方法:经多方查证,"default_storage_engine=MyISAM"这行代码必须添加在[mysqld]的行尾,禁止添加在整个文件内容的行尾,即禁止添加在[mysqld_safe]的行尾!!!

1.1.修改/etc/my.cnf配置文件
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

#必须在[mysqld]的行尾添加如下代码才能生效,在/etc/my.cnf配置文件的行尾([mysqld_safe]的行尾)添加代码会导致存储引擎设置失败!!!
#指定默认存储引擎为MyISAM类型
default_storage_engine=MyISAM

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

2.重启数据库服务,使其修改生效
[root@localhost ~]# systemctl restart mariadb

3.登录到数据库,查看其默认存储引擎是否修改成功
[root@localhost ~]# mysql -h localhost -uroot -p971224
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

总结:"default_storage_engine=MyISAM"这行代码必须添加在[mysqld]的行尾之后,重启Mariadb数据库服务,默认存储引擎已经修改生效了。


补充:将Mariadb数据库默认的存储引擎由InnoDB修改为MyISAM类型,并且临时生效。

进入Mariadb数据库之后输入"set default_storage_engine=MyISAM;"这行代码即可完成临时默认存储引擎的设置。

MariaDB [(none)]> set default_storage_engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show variables like 'default_storage_engine';     #再次查看数据库默认存储引擎类型
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

注意:此修改仅临时有效,当再次重启客户端时,原先设置失效,默认存储引擎仍然是InnoDB。

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值