zoukankan      html  css  js  c++  java
  • Linux环境下修改MySQL数据库存储引擎

    今天在执行Oracle数据库迁移至MySQL数据库时报出了一个错误信息:

    Specified key was too long; max key length is 1000 bytes

    百度发现,原来需要更改MySQL数据库的存储引擎为InnoDB,查询目前现有的存储引擎信息:

    [root@test-121 ~]# mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 10
    Server version: 5.1.71 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show engines;
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    | Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    | MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
    | CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
    | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
    | InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
    | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    5 rows in set (0.00 sec)
    
    mysql>

    查询发现,默认的存储引擎为MyISAM,目前安装的MySQL数据库提供了对InnoDB引擎的支持。

    更改方法如下:

    修改“/etc/my.cnf”配置文件

    [root@test-121 mysql]# cat /etc/my.cnf 
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    default-storage-engine=InnoDB
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    在[mysqld]节点下面增加“default-storage-engine=InnoDB”选项。

    重启MySQL服务:

    service mysqld restart

    再次查看数据存储引擎信息:

    mysql> show engines;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    10
    Current database: *** NONE ***
    
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    | Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    | MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
    | CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
    | MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
    | InnoDB     | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
    | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
    +------------+---------+------------------------------------------------------------+--------------+------+------------+
    5 rows in set (0.01 sec)

    发现已经将数据库存储引擎切换至InnoDB。

    再次迁移数据库没有发生错误信息。

    关键信息总结:

    1、登录MySQL Console控制台

    mysql –u root –p

    2、查看数据库存储引擎

    show engines;

    3、MySQL数据库配置文件路径

    /etc/my.cnf

    4、增加数据存储引擎配置项

    default-storage-engine=InnoDB

    5、重启MySQL

    service mysqld restart

  • 相关阅读:
    Redis源码解析:07压缩列表
    Redis源码解析:06整数集合
    Redis源码解析:05跳跃表
    Laravel中的路由管理
    jquery登录的异步验证
    ThinkPHP3.2.3中,配置文件里配置项的读取
    ThinkPHP3.2.3中,查询语句中in的使用方法。
    Fatal error: Maximum function nesting level of '100' reached, aborting!
    无限级分类的收缩与展开功能
    mysql添加DATETIME类型字段导致Invalid default value错误的问题
  • 原文地址:https://www.cnblogs.com/xusweeter/p/7002604.html
Copyright © 2011-2022 走看看