MySql 檔案還原

我原本在本地 Docker 運行一個 redmine 的實體,可是後來某次重開機,mariadb 就一直重啟,無法正常運行,試了很多種方法,就放棄把它運行起來了。

後來看到好險當初有把硬碟掛載到外面,所以 mariadb 的檔案我還取得的到。

MySql 無法啟動問題 - /usr/local/mysql/data directory is not owned by the mysql user

主因是因為之前試做一些 python 程式時,因為需要調整環境變數時,動到 /usr/local 的權限了。

/usr/local 資料夾以及下面的檔案及資料夾擁有者和權限都更動到,導致 /usr/local/mysql/data 的擁有者不再是 mysql

在 terminal 執行已指令就可以了

1
sudo chown -R mysql /usr/local/mysql/data

可以使用 ls -la 檢查擁有者及權限

參考資料:https://www.itread01.com/content/1544114825.html

Store Procedure with Transaction 交易功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
declare exit handler for sqlexception
begin
GET DIAGNOSTICS CONDITION 1
@error_code = RETURNED_SQLSTATE,
@error_msg = MESSAGE_TEXT;
rollback;
insert into log_sql (log) values(@error_msg);
RESIGNAL;
end;

set trello_id = JSON_UNQUOTE(JSON_EXTRACT(params, '$.trello_id'));
set trello_name = JSON_UNQUOTE(JSON_EXTRACT(params, '$.trello_name'));
set customer = JSON_UNQUOTE(JSON_EXTRACT(params, '$.customer'));

start transaction;
insert into proposal_trello (id, name, customer)
values (trello_id, trello_name, customer);
commit;

MySql 時間欄位

在資料表設立一個修改資料的時間欄位

1
2
3
4
5
6
7
8
create table if not exists sound(
id varchar(50) not null,
name varchar(100) not null,
modify_datetime datetime default current_timestamp on update current_timestamp,
url varchar(500),
graph longblob,
primary key (id)
);

Mysql 允許外部連入

架了一個 VPS server,一般都不會想要登入進去在 VPS server 上直接操作,一是因為速度通常有點慢,二就是用的工具可能不順手,像是我就習慣用圖形介面工具操作 MySql。

我的 Mysql 版本 5.7