如何消除button和input之間的間距
阿新 • • 發佈:2020-12-09
報錯資訊
類似下面這種情況:
/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13 - Permission denied)
[ERROR] Aborting
[Note] Binlog end
[Note] /mysql/bin/mysqld: Shutdown complete
觸發條件
出現問題的情況:啟用mysql的binlog導致的
我這邊docker-compose內容如下:
version: '3'
services:
mysql:
container_name: mysql
image: mysql:5. 7
environment:
- MYSQL_ROOT_PASSWORD=mysql的root密碼
volumes:
- ./conf:/etc/mysql
- ./logs:/var/log/mysql
- ./data:/var/lib/mysql
ports:
- 30030:3306
restart: always
為了啟用binlog,我的操作是修改配置檔案my.cnf,在[mysqld]追加下面檔案的最後三行,重啟後就報了這個問題
[mysqld]
lower_case_table_names=1
log-bin=/var/lib/mysql/mysql-bin
binlog-format=ROW
server_id=123456
問題分析
看到報錯第一行File ‘./mysql-bin.index’ not found (Errcode: 13 - Permission denied),知道是mysql使用者對資料庫目錄內的所有檔案不具有寫的許可權,按照常規的解決辦法是
chown mysql:mysql -R /var/lib/mysql
但是現在我是通過docker啟動的MySQL,就無法控制這個問題了
解決辦法
知道了原因,我想到的辦法是在第一次啟動時my.cnf不加入那三行,只保留下面的內容
[mysqld]
lower_case_table_names=1
然後docker-compose start mysql
啟動後執行下面的三步操作
docker exec mysql bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/my.cnf"
docker exec mysql bash -c "echo 'binlog-format=ROW' >> /etc/mysql/my.cnf"
docker exec mysql bash -c "echo 'server_id=123456' >> /etc/mysql/my.cnf"
通過這種辦法寫入後,在執行docker-compose restart mysql
就不會再報錯,這時候查詢show variables like 'log_bin%'
,binlog已經正常啟用