Как изменить местоположение данных на Ubuntu

Я уже видел этот вопрос здесь: https://stackoverflow.com/questions/1795176/change-mysql-data-directory, но это не очень полезно.

  1. Что я хочу: перемещать мою sql папку данных в мое другое место (/media/data)

  2. Что я сделал:

    a) sudo service mysql stop

    b) mv /var/lib/mysql/ /media/data/

    c) sudo vim /etc/mysql/my/cnf:

    • раздел [mysqld]:
      datadir = /var/lib/mysql/ - > datadir = /media/data/lib/

    • раздел [mysqld_safe]:
      добавленный: datadir = /media/data/lib/

    d) sudo vim /etc/apparmor.d/usr.sbin.mysqld:

    • добавленный:
      /media/data/mysql/ r,
      /media/data/myql/** rwk,

    • прокомментированный:
      #/var/lib/mysql/ r,
      #/var/lib/mysql/** rwk

    e) sudo /etc/init.d/apparmor reload

    f) sudo service mysql start

  3. Что я получил:

    a) tail -f /var/log/mysql/error.log:
    120215 1:30:01 [Note] Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 120215 1:30:01 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 120215 1:30:01 InnoDB: Operating system error number 13 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name ./ibdata1 InnoDB: File operation call: 'create'. InnoDB: Cannot continue operation.
    b) Даже когда иногда журнал является чистым, я не могу соединиться с сервером:
    mysql -u root -p
    Enter password:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run /mysqld/mysqld.sock' (2)

Помогите..

2
02.02.2020, 20:16
3 ответа

Это - позор для принятия, но проблема была точно, что указало сообщение об ошибке: у пользователя пост-ГРЭС не было полномочий получить доступ в файлы, даже думал, что все файлы имели корректный набор прав доступа. К сожалению, каждый выравнивает каталог, не имел...

0
22.02.2020, 23:18

Я сделал это на человечности, я не использую apparmor, но это настройки, которые я изменил, все под [mysqld] (я думаю, что mysql_safe также использует эти настройки),

datadir = /mysql_data
innodb_data_home_dir = /mysql_data
innodb_log_group_home_dir = /mysql_data

Я также поместил свои файлы журнала там, но это не нужно.

1
22.02.2020, 23:18

Просто удалите ib_logfile0, ib_logfile1, ibdata1, *.err, *.pid файлы из Вашего нового каталога данных. Надежда это будет работать на Вас!

0
22.02.2020, 23:18

Теги

Похожие вопросы