2019-07-10-raspbian-buster-lite より
インストールは、mysql-server ではできない。
sudo apt-get -y install mariadb-server
status; で表示される情報
mariadb Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
(1) 検索について
結局大事なのは検索で、メモとして追加NULL 検索をするとKeyも無視するらしいので、NULLを使ってはならない。
棚番号にXXXXが入って無く、かつdataに20%の値が設定されている。
select tana,hinc from zaiko where tana != "XXXX" and date like '20%';
カラムをグレイヴ アクセントで囲み検索条件をシングルクォーテーション
select count(*) from zaiko
where `tana` like '%CHC%' and `data` like '20%';
(2) Login
mariadb -uroot db -pxxxxxmariadb -uroot -p -h ホスト名
(3) DB処理
select * from zaiko;select * from zaiko where id = 10;
select * from zaiko where hinc like('% style="font-size: 10pt;"%');
insert into counters values('payouts', 0);
insert into counters values('seibans', 0);i
nsert into users (name) values ('かばかば');
insert into user (id, name) values (2, 'kaba');
insert into profiles (name) select users from users where users.id = 1;
update users set name='kayak', status=3 where id=1;
delete from wakuwaku where kimoti like "waku%" and fuku <> "hadaka";
・例)検索してREPLACEで置換
update ship set post_kayakp = replace(post_content, 'style="font-size: 12pt;"', '') where kayak like('% style="font-size: 12pt;"%');
(4) DB import export
・import
入力ファイルはテーブル名
mysqlimport -uthn -pxxxxux --fields-terminated-by="|"
--lines-terminated-by="\n" --local test /home/pi/tmp/t1.csv
test.t1: Records: 21 Deleted: 0 Skipped: 0 Warnings: 0
mysqldump -uuser -p -t database table1 table2 ... > backup-file.sql
DBの場合
mysql -uuser -p database < backup-file.sql
・export
出力先は/tmpにしないとエラーになる。
DB名test, DB内にはtable名t1のみ、結果は /tmp/t1.txt となっている。
sudo rm /tmp/t*; mysqldump -uroot -pxxxxx --tab=/tmp
--fields-terminated-by='|' test
・コマンドライン
load data local infile “./test.csv” into table t1
fields terminated by “,” lines terminated by “\r\n”;
出力先は/tmpにしないとエラーになる。
select * fromt1 into outfile ‘/tmp/te.csv’
fields terminated by ‘|’ lines terminated by ‘\n’;
(5) DB, Table 作成、管理
・DB作成
create database DB名称;
・DB削除
drop database DB名称;
・例)DB作成とテーブル作成
create database wm;
create table wm.zaiko(hinc CHAR(32),
hin CHAR(35),
kazu int(6),
hink CHAR(3),
kata CHAR(200),
hin2 VARCHAR(300),
tana CHAR(32),
yearin char(4),
monthin char(2),
date char(14),
koushin datetime,
other VARCHAR(256)
);
Query OK, 0 rows affected (5.89 sec)
・例)テーブル作成
cretat table t1(id int, name varchar(128), atr varchar(128));
`id` int(11) default null,
`name` varchar(128) default null,
`atr` varchar(128) default null,
`txt1` varchar(128) default null,
`txt2` varchar(128) default null
) engine=InnoDB default charset=utf8mb4;
・テーブル確認
describe t1;
・プライマリーキーの追加
alter table テーブル名 add primary key (カラム名);
・カラム名と型を変更
alter table `posts` change column `txt` `caption` varchar(255);
カラムの名前だけを変更する場合でも、上記のように型指定が必要
not null制約を追加する場合です。カラム名の制約を追加
alter table `posts` change column `txt` `caption` varchar(255) not null;
・カラムの型を変える
alter table `comments` modify column `post_id` bigint not null;
・カラム追加
alter tableとADDを使用してカラムを追加。
after 指定でpasswordカラムの後ろに、kayak_idカラムが追加
先頭に追加する時は、first を指定する。
alter table users add kayak_id int(11) default null;
alter table users add kayak_id int(11) default null after password;
alter table users add kayak_id int(11) default null first;
alter table t1 addtxt2 varchar(128);
alter table t2 addtxt1 varchar(128) after txt1;
alter table seibans add fjkn char(4) after hd_kpn;
alter table hd add payout_flag char(7) after total_members;
・カラム削除
alter table hd drop payout_flag;
・テーブル内のデータを削除する。データだけの削除。
truncate t1;
・テーブルを消す
mariadb -uuser database -p
drop table if exsts table1, table2,,,,;
(6) Utility
status;
show databases;
show columns from zaiko;
select count(*) from zaiko;
select version();
show variables;
show variables like "char%";
show variables like 'slow%';
use mysql;
select * from user;
(7) ユーザ管理
・ユーザー確認
select user from mysql.user;
・ユーザ追加とパスワード設定
create user 'ユーザ名'@'localhost' identified by 'ここにパスワード';
create user 'kayak'@'localhost' identified by 'password';
・ユーザーのパスワードを変更
set password for kayak@localhost=password( 'kayakPassword' );
・ユーザーを削除
drop user ユーザー名@ホスト名;
・ユーザー権限を確認
show grants for wordpress@localhost;
show grants for 'kayak'@'%';
・権限を追加
grant all privileges on DB名.テーブル名 to 'ユーザ名'@'localhost';
mariadb 10.1.37では、上記のDB名.テーブル名は、シングルコーテーションで
囲むとエラーになる。従って、下記のようにする。
grant all privileges on TESTDB.* to 'user'@'localhost';
grant select on `kayakdb`.`users` to 'kayak'@'%'
grant file on *.* to kayak@localhost;
まとめると、、、
・グローバルレベル.sql
全DBの全テーブルに対して、与える権限を与える
grant 与える権限 on *.* to user名;
・データベースレベル.sql
指定したDB名の全テーブルに与える権限を与える
grant 与える権限 on DB名.* to user名;
・テーブルレベル.sql
指定したDB名の指定したテーブル名に与える権限を与える
grant 与える権限 on DB名.テーブル名 to user名;
・変更を反映さえる
flush privileges;
(8)開発環境を作る
sudo apt-get install default-libmysqlclient-dev
gcc slct01.c -o slct01 -lmysqlclient -L/usr/lib/arm-linux-gnueabihf
libmariadbclient-dev は、必要無いのかしら、、、
0 件のコメント:
コメントを投稿