windows操作系统下MySQL5.7、8.0的data目录变更方法以及一些相关问题(MYSQL8的my.ini位置在哪里)

现在我们的盘都是SSD硬盘,读写速度都快,我们也懒得分区,有些时候我们装软件也喜欢装在C盘,运行快,不过有些时候的数据还是比较重要的,不光是快的问题,也要安装,比如我们安装的mysql,会安装在C盘,数据库存储目录的Data就要放在其他盘符比较好,下面就来说说如何的更换Mysql的目录;

windows环境安装MySQL8.0,默认安装在C盘的;

basedir是:C:\Program Files\MySQL\MySQL Server 8.0\bin

datadir 是:C:\ProgramData\MySQL\MySQL Server 8.0\data   #这是一个隐藏文件夹

现在想把datadir迁移到E盘,做法是:

1、关闭数据库服务

cd C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqladmin -uroot -piris shutdown
2、将整个data目录剪切到E盘相应文件夹(我在E盘下新建了一个Mysql文件夹,E:\mysql)下:

将原data文件夹整个剪切到mysql下。

新的datadir是:E:\mysql\Data。

并在mysql下新建 “tmp_data”和“slave_data”两个文件夹,为参数tmpdir和slave_load_tmpdir的值。

tips:注意新的Mysql和data文件夹的权限处理。

3、修改配置文件my.ini

修改datadir的路径后,修改my.ini配置文件。

my.ini的配置文件应该在“C:\Program Files\MySQL\MySQL Server X.Y\ ”  目录下。   #X.Y代表MySQL的版本号

我的配置文件是:C:\Program Files\MySQL\MySQL Server 8.0\my.ini

补充:

1.有关于datadir路径更换的配置内容主要如下

basedir=C:/Program Files/MySQL/MySQL Server 8.0/bin
datadir=E:/mysql/Data
tmpdir=E:/mysql/tmp_data
slave_load_tmpdir=E:/mysql/slave_data
lc-messages-dir=C:/Program Files/MySQL/MySQL Server 8.0/share   #错误消息文件存在的目录
lc-messages="en_US"         #错误消息的语言环境。默认是 en_US。可将参数转换为其他语言
log_timestamps=SYSTEM       #错误日志显示的时间
secure-file-priv=E:/mysql/Uploads
general-log=0       #关闭普通日志
general_log_file=e:/mysql/data/iris_bin.log       #二进制文件
slow_query_log_file=e:/mysql/data/iris-slow.log   #慢日志文件
slow-query-log=1   #慢查询时间阈值
long_query_time=1
exec_time=20 #SQL执行超过20秒自动终止
# Binary Logging.
log-bin=e:/mysql/data/iris-bin
log-error=e:/mysql/data/iris-err.err
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
default_authentication_plugin=mysql_native_password  #修改用户的身份验证插件。原默认用户身份验证插件是caching_sha2_password,安全性和性能都较好,但是不支持8.0一下版本的客户端&连接器
2、指定了log_timestamps=system的影响:

log_timestamps,错误日志显示时间,指定为system,即我的是"+8:00"(因为windows环境的system_time_zone就是我计算机的时间,北京时间)。

配置前后错误日志内容如下:

配置前:

2018-12-13T02:44:24.378145Z 0
2018-12-13T02:44:20.021582Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.13) starting as process 143496
2018-12-13T02:44:20.021686Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\bin\share\errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2018-12-13T02:44:24.378145Z 0 [ERROR] [MY-010119] [Server] Aborting

配置后:

2018-12-13T11:29:00.337768+08:00 0
2018-12-13T11:29:00.337768+08:00 0 [ERROR] [MY-010361] [Server] Fatal error: Illegal or unknown default time zone 'UCT'
2018-12-13T11:29:00.342668+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2018-12-13T11:29:32.462444+08:00 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.

4、修改完配置文件后,直接启动数据库即可

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld
tips:

针对data文件夹整个的迁移,如果不修改my.ini配置文件也是可以的。

每次启动的时候带上--datadir=data_dir_comm就行,即:

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --datadir=e:\mysql\data
而且,我的my.ini位子并没有挪动,如果my.ini文件也迁移 了、位子也变了,那么启动的时候一定要带上--defaults-file参数。

-----------------------------------------------------------------------------------------------------

其他:关于“iris_err.err错误日志”显示时间例子里两段日志内容补充说明:(都是粗心导致的报错(ಥ﹏ಥ))

问题1:

Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\bin\share\errmsg.sys'-->找不到错误消息的文件,路径错误

解决:

改为:Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\share\'

share下面都是各种语言系统的报错文件,指定到share。

配置文件里面 lc-messages-dir和lc-messages,一般是配套使用的,一个记录路径,一个在选择路径下众多语言里选一个。

当然,指定了lc-messages-dir,不写lc-messages也是可以的。lc-messages默认是“en_US”。

问题2:

Fatal error: Illegal or unknown default time zone 'UCT''-->指定的默认时区值是不合法的(也就是不存在这样的值,)

解决:

配置文件my.ini中指定的系统默认时区值有误,正确写法是UTC。但我的配置文件里改成“+0:00”、“+8:00”的值等模式。使用UTC这种时区名字需要在time_zone_name表里有对应关系才行,因为我的MySQL的time_zone_name表是空的。
------------------------------------------------------

  1. 在C:\ProgramData\MySQL\MySQL Server 5.7文件夹
  2. my.ini是默认的配置文件。在这里我们只更改数据存储路径。不更改配置文件
1 # Path to the database root
2 datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data

将96行后面的值修改为需要的路径即可

自定义的文件夹需要在安全属性里面添加network service的访问权限,不然会触发10061(2003)的错误。

PS:mysql在Windows下使用network service权限运行

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

更多请关注:老梁`s Blog

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
转载请注明文章来源老梁`s Blog(老梁博客) » windows操作系统下MySQL5.7、8.0的data目录变更方法以及一些相关问题(MYSQL8的my.ini位置在哪里)
手机微信同步:188 1029 2089
公司注册、公司注销,资质办理等业务请加微信
扫扫即可添加我为好友哦!
分享到:
赞(0) 您的支持是最大的动力

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

通知:老梁`s Blog近期正在更换域名中,有原来06929.com变更为laoliang.net 请大家收藏最新网址,感谢大家的支持

维护本站需要一些精力和资金,本站暂无收入来源。如果您愿意支持博主,欢迎您使用微信或者支付宝扫一扫,来支付任意额度打赏博主。(感谢)

支付宝扫一扫打赏

微信扫一扫打赏