Linux下更改mysql5.1 数据目录datadir的方法

    xiaoxiao2022-06-23  41

    linux下,MySQL默认的数据文档存储目录为/var/lib/mysql 假如要把MySQL目录移到/home/data下需要进行下面几步: 1、home目录下建立data目录 mkdir /home/data 2、把MySQL服务进程停掉: service mysqld stop 3、把/var/lib/mysql整个目录移到/home/data cp -afir /var/lib/mysql /home/data/mysql 这样就把MySQL的数据文档移动到了/home/data/mysql下 mv /var/lib/mysql /var/lib/mysql.bak  #重命名备份下 4、找到my.cnf配置文档假如/etc/目录下没有my.cnf配置文档,请到/usr/share/mysql/下找到*.cnf文档,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: # cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 5、编辑MySQL的配置文档/etc/my.cnf 为确保MySQL能够正常工作,需要指明mysql.sock文档的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/data/mysql/mysql.sock 。操作如下: vi /etc/my.cnf    (用vi工具编辑my.cnf文档,找到下列数据修改之) #datadir=/var/lib/mysql datadir=/home/data/mysql #socket=/var/lib/mysql/mysql.sock socket=/home/data/mysql/mysql.sock 6、修改MySQL启动脚本/etc/init.d/mysql 最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成您现在的实际存放路径:home/data/mysql。 vi /etc/init.d/mysqld #get_mysql_option mysqld datadir "/var/lib/mysql" get_mysql_option mysqld datadir "/home/data/mysql" 如果是CentOS还要改 /usr/bin/mysqld_safe 相关文件位置; yum安装的mysql需要修改mysql_config中的内容: vi /usr/lib64/mysql/mysql_config #ldata='/var/lib/mysql' ldata='/home/data/mysql/' #socket='/var/lib/mysql/mysql.sock' socket='/home/data/mysql/mysql.sock' vi /usr/bin/mysqld_safe #  DATADIR=/var/lib/mysql   DATADIR=/home/data/mysql 7、重新启动MySQL服务 /etc/init.d/mysql start 报错记录: 160914 10:19:09 mysqld_safe Starting mysqld daemon with databases from /root/mysql_restore_test/mysql /usr/libexec/mysqld: Table 'plugin' is read only 160914 10:19:09 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 160914 10:19:09  InnoDB: Initializing buffer pool, size = 8.0M 160914 10:19:09  InnoDB: Completed initialization of buffer pool 160914 10:19:09  InnoDB: Started; log sequence number 0 44233 160914 10:19:09 [ERROR] Can't start server : Bind on unix socket: Permission denied 160914 10:19:09 [ERROR] Do you already have another mysqld server running on socket: /root/mysql_restore_test/mysql/mysql.sock ? 160914 10:19:09 [ERROR] Aborting 160914 10:19:09  InnoDB: Starting shutdown... 160914 10:19:14  InnoDB: Shutdown completed; log sequence number 0 44233 160914 10:19:14 [Note] /usr/libexec/mysqld: Shutdown complete 160914 10:19:14 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 解决方法:

    应该是权限问题,将chmod 777 -R /home 修改为777就可以了,这样可能权限有些大,可以将数据目录建立到单独的一个目录中之后设置为777

    参考: http://www.osyunwei.com/archives/566.html https://my.oschina.net/tinglanrmb32/blog/496236?p=1

    转载请注明原文地址: https://ju.6miu.com/read-1123353.html

    最新回复(0)