windows下mysql使用独立data目录方法

注意,适用于mysql5.7或mariadb10,不适用于mysql8

  1. 解压绿色版(或安装版安装时选择不创建实例)
  2. 创建一个空的data目录,例如D:/mysqldata
  3. 在data目录下新建my.ini(mysql8可以从解压目录下复制一份),参考内容:
    [mysqld]
    port = 3306
    basedir=D:/tool/mysql/mysql-5.7.26-winx64
    datadir=D:/mysqldata
    max_connections=50
    character-set-server=utf8mb4
    default-storage-engine=INNODB
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
    
    mysql8还需要加一句
    default-character-set=utf8mb4
    
  4. 命令行进入安装/解压目录下的bin目录(以管理员身份运行cmd)
  5. 关联data目录:
    如果创建新的data目录:
    mariadb10:执行mysql_install_db -d[data目录路径] -R -S[ServiceName服务名] (可以用-?查看帮助)
    mysql:先将my.ini放入mysql解压根目录,执行mysqld --initialize-insecure --user=mysql,然后移动新生成的data目录内容和my.ini到之前创建的data目录下,再执行mysqld -install [ServiceName] --defaults-file=[my.ini路径]
    如果使用已存在的data目录(版本必须兼容):mysqld -install [ServiceName] --defaults-file=[my.ini路径]
  6. 在本地服务中找到刚才注册的服务,修改登录标签中的用户为本地系统帐户或其他有权限读写data目录的用户
  7. 设置数据库默认字符编码(推荐utf8mb4,若需要兼容旧系统脚本可以用utf8):
    修改data目录下的my.ini
    [mysqld]
    character_set_server=utf8mb4
    collation_server=utf8mb4_general_ci
    
  8. 启动服务net start [ServiceName]
  9. 修改root用户密码,命令行执行:
    mysql -u root
    use mysql;
    set password for `root`@`%` = password('yourpassword');
    flush privileges;
    exit;
    

如果需要修改默认字符编码:

  1. 关闭服务net stop [ServiceName]
  2. 修改data目录下的my.ini
    [mysqld]
    character_set_server=utf8mb4
    collation_server=utf8mb4_general_ci
    
  3. 启动服务net start [ServiceName]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。