1. 程式人生 > 其它 >如何消除button和input之間的間距

如何消除button和input之間的間距

技術標籤:MySQLmysqldocker-compose

報錯資訊

類似下面這種情況:

/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已經正常啟用
在這裡插入圖片描述