
У меня есть простой вопрос по поводу доступа к mysql через команду. Когда я попытался получить к нему доступ как root, он выдал сообщение:
mysql: unknown option '--innodb_file_per_table'
Как вернуть его к работе?
Спасибо, Рик. Мне удалось получить доступ, и сервер работает, но меня беспокоит куча ошибок при запуске/остановке/перезапуске.
журнал ошибок
2020-12-17 19:16:40 0 [Note] InnoDB: Using Linux native AIO
2020-12-17 19:16:40 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-12-17 19:16:40 0 [Note] InnoDB: Uses event mutexes
2020-12-17 19:16:40 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-12-17 19:16:40 0 [Note] InnoDB: Number of pools: 1
2020-12-17 19:16:40 0 [Note] InnoDB: Using SSE2 crc32 instructions
2020-12-17 19:16:40 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2020-12-17 19:16:40 0 [Note] InnoDB: Completed initialization of buffer pool
2020-12-17 19:16:40 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority ().
2020-12-17 19:16:40 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2020-12-17 19:16:40 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2020-12-17 19:16:40 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2020-12-17 19:16:40 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2020-12-17 19:16:40 0 [Note] InnoDB: 10.3.27 started; log sequence number 8459955162; transaction id 23688770
2020-12-17 19:16:40 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2020-12-17 19:16:40 0 [Note] Plugin 'FEEDBACK' is disabled.
2020-12-17 19:16:40 0 [Note] Server socket created on IP: '127.0.0.1'.
2020-12-17 19:16:40 0 [Note] Reading of all Master_info entries succeeded
2020-12-17 19:16:40 0 [Note] Added new Master_info '' to hash table
2020-12-17 19:16:40 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.3.27-MariaDB-0+deb10u1' socket: '/run/mysqld/mysqld.sock' port: 3306 Debian 10
2020-12-17 19:16:40 0 [Note] InnoDB: Buffer pool(s) load completed at 201217 19:16:40
решение1
План А (запутанный и не рекомендуемый): добавьте эту опцию в mysqld
(серверную программу, а не mysql
клиентскую программу).
План Б: Измените настройки в my.cnf
(или в любом другом месте файла конфигурации). Затем перезапустите сервер. (Перезапуск зависит от ОС.)
План C: Войдите как пользователь "root" mysql, выполните SET GLOBAL innodb_file_per_table = 1;
. Впредь (пока вы не выйдете из системы) таблицы, которые _это соединение CREATEs
будут файл-на-таблицу. Кроме того, поскольку эта настройка "глобальная", она будет применяться к другим, которые войдутпоследелая SET
идозатем снова перезагрузитесь (или отключите флаг).
План D: (Только в MySQL 8.0) root может сделать это SET
с PERSIST
опцией. (Но я не буду вдаваться в подробности.)
Предостережение: Различные настройки имеют различные правила. Эти 4 плана работают длянекоторыйнастройки. Меньше или больше планов применяются к другим настройкам. Одна подсказка — в документации указано, является ли настройка «глобальной» или «сеансовой» или и тем, и другим.