使用しているバージョン情報
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS" $ mysql -V mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
データベースとユーザを作成
$ mysql -u root -p Enter password: /* パスワード入力 */ mysql> create database college; /* DB作成 */ mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | college | /* collegeDBが追加 */ | mysql | | performance_schema | | sys | | wordpress | +--------------------+ /* testユーザを作成し、該当DBへ全権限を付与 */ mysql> grant all on college.* to test@localhost identified by 'test'; mysql> select user from mysql.user; /* testユーザ登録確認 */ +------------------+ | user | +------------------+ | debian-sys-maint | | mysql.session | | mysql.sys | | root | | test | /* testユーザが追加 */ | wordpress | +------------------+ mysql> exit
作業用ユーザでテーブル作成
$ mysql -u test -p Enter password: /* パスワード入力 */ mysql> show databases; /* 作業ユーザで利用できるDBを確認 */ +--------------------+ | Database | +--------------------+ | information_schema | | college | +--------------------+ mysql> use college; /* 利用するDBを設定 */ /* staff_registerテーブル作成 */ mysql> create table staff_register( id int(4) auto_increment primary key, department varchar(32) not null, section varchar(32) not null, name varchar(32) not null, phone int(8), email varchar(32) ); mysql> show tables; /* テーブル作成確認 */ +-------------------+ | Tables_in_college | +-------------------+ | staff_register | +-------------------+ mysql> desc staff_register; /* カラムを表示 */ +------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | department | varchar(32) | NO | | NULL | | | section | varchar(32) | NO | | NULL | | | name | varchar(32) | NO | | NULL | | | phone | int(8) | YES | | NULL | | | email | varchar(32) | YES | | NULL | | +------------+-------------+------+-----+---------+----------------+
作業用ユーザでレコードの追加/参照/更新/削除
/* レコードの追加 */ mysql> insert into staff_register (id, department, section, name, phone, email) values (1, 'Technology', 'Applied Science', 'John Brawn', 74111111, 'aaa@gmail.com'); /* 全てのカラムに値を指定する場合に限って、カラムの記述を省略可能 */ mysql> insert into staff_register values (1, 'Technology', 'Applied Science', 'John Brawn', 74111111, 'aaa@gmail.com'); mysql> select * from staff_register; /* レコードの追加を確認 */ +----+------------+-----------------+------------+----------+---------------+ | id | department | section | name | phone | email | +----+------------+-----------------+------------+----------+---------------+ | 1 | Technology | Applied Science | John Brawn | 74111111 | aaa@gmail.com | +----+------------+-----------------+------------+----------+---------------+ /* John Brawn の名前を Jack Brawn に変更 */ mysql> update staff_register set name = 'Jack Brawn' where name = 'John Brawn'; mysql> select * from staff_register; /* レコードの更新を確認 */ +----+------------+-----------------+------------+----------+---------------+ | id | department | section | name | phone | email | +----+------------+-----------------+------------+----------+---------------+ | 1 | Technology | Applied Science | Jack Brawn | 74111111 | aaa@gmail.com | /* Jackに変更された */ +----+------------+-----------------+------------+----------+---------------+
/* 続けて幾つかレコードを追加してみます */ mysql> insert into staff_register (department, section, name, phone, email) values ('Technology', 'ICT', 'Jacob', 74111112, 'bbb@gmail.com'); mysql> insert into staff_register (department, section, name, phone) values ('Technology', 'ICT Support', 'Jackson', 74111113); mysql> insert into staff_register (department, section, name, email) values ('Administration', 'Administration', 'Noah', 'ddd@gmail.com'); mysql> insert into staff_register (department, section, name) values ('Administration', 'Finance', 'Lucas'); mysql> insert into staff_register (department, section, name) values ('Administration', 'Learning Resouces Centre', 'Sophia'); mysql> insert into staff_register (department, section, name, email) values ('Administration', 'Maintenance', 'Chloe', 'fff@yahoo.com'); mysql> insert into staff_register (department, section, name, email) values ('Administration', 'Supplies & Contracts', 'George', 'ggg@yahoo.com'); mysql> select * from staff_register; /* レコードの追加を確認 */ +----+----------------+--------------------------+------------+----------+---------------+ | id | department | section | name | phone | email | +----+----------------+--------------------------+------------+----------+---------------+ | 1 | Technology | Applied Science | Jack Brawn | 74111111 | aaa@gmail.com | | 2 | Technology | ICT | Jacob | 74111112 | bbb@gmail.com | | 3 | Technology | ICT Support | Jackson | 74111113 | NULL | | 4 | Administration | Administration | Noah | NULL | ddd@gmail.com | | 5 | Administration | Finance | Lucas | NULL | NULL | | 6 | Administration | Learning Resouces Centre | Sophia | NULL | NULL | | 7 | Administration | Maintenance | Chloe | NULL | fff@yahoo.com | | 8 | Administration | Supplies & Contracts | George | NULL | ggg@yahoo.com | +----+----------------+--------------------------+------------+----------+---------------+
/* レコードの削除 */ mysql> delete from staff_register where section = 'Finance'; mysql> select * from staff_register; /* レコードの削除を確認 */ +----+----------------+--------------------------+------------+----------+---------------+ | id | department | section | name | phone | email | +----+----------------+--------------------------+------------+----------+---------------+ | 1 | Technology | Applied Science | Jack Brawn | 74111111 | aaa@gmail.com | | 2 | Technology | ICT | Jacob | 74111112 | bbb@gmail.com | | 3 | Technology | ICT Support | Jackson | 74111113 | NULL | | 4 | Administration | Administration | Noah | NULL | ddd@gmail.com | | 6 | Administration | Learning Resouces Centre | Sophia | NULL | NULL | | 7 | Administration | Maintenance | Chloe | NULL | fff@yahoo.com | | 8 | Administration | Supplies & Contracts | George | NULL | ggg@yahoo.com | +----+----------------+--------------------------+------------+----------+---------------+
/* where句で抽出条件を指定できます */ mysql> select * from staff_register where department = "Administration"; +----+----------------+--------------------------+--------+-------+---------------+ | id | department | section | name | phone | email | +----+----------------+--------------------------+--------+-------+---------------+ | 4 | Administration | Administration | Noah | NULL | ddd@gmail.com | | 6 | Administration | Learning Resouces Centre | Sophia | NULL | NULL | | 7 | Administration | Maintenance | Chloe | NULL | fff@yahoo.com | | 8 | Administration | Supplies & Contracts | George | NULL | ggg@yahoo.com | +----+----------------+--------------------------+--------+-------+---------------+ /* LIKE演算子とワイルドカード文字「%」を使用して、文字列の部分一致条件を指定することもできます */ mysql> select * from staff_register where email like '%yahoo.com'; +----+----------------+----------------------+--------+-------+---------------+ | id | department | section | name | phone | email | +----+----------------+----------------------+--------+-------+---------------+ | 7 | Administration | Maintenance | Chloe | NULL | fff@yahoo.com | | 8 | Administration | Supplies & Contracts | George | NULL | ggg@yahoo.com | +----+----------------+----------------------+--------+-------+---------------+
作業用ユーザでテーブルとデータベースを削除
mysql> truncate table staff_register; /* staff_registerテーブル内データ削除 */ mysql> select * from staff_register; /* データ削除確認 */ mysql> drop table staff_register; /* staff_registerテーブル削除 */ mysql> show tables; /* テーブル削除確認 */ mysql> drop database college; /* collegeDB削除 */ mysql> show databases; /* DB削除確認 */ mysql> exit
ユーザ削除
$ mysql -u root -p Enter password: /* パスワード入力 */ mysql> revoke all privileges on *.* from test@localhost; /* testユーザから全てのデータベースへのアクセス権限を剥奪 */ mysql> drop user test@localhost; /* testユーザ削除 */ mysql> select user from mysql.user; /* testユーザ削除確認 */ mysql> flush privileges; /* testユーザの削除をMySQLサーバーへ反映 */ mysql> exit /* データベースから抜ける */
WordPressのレコードの文字列置換
HTML上でリンクにtarget=”_blank”を指定することには「セキュリティとパフォーマンスの点で問題がある」と、グーグルのエンジニアが注意している記事を見つけたので対応。
https://webtan.impress.co.jp/e/2020/03/13/35510
# target="_blank" を使用して任意のページから別のページへのリンク数 mysql> select post_title from wp_posts where post_content like '%_blank%'; 2652 rows in set (0.13 sec) # target="_blank" がついた(信用できるとは限らない外部向け)リンクに rel="noopener" が付いていないリンク数 mysql> select post_title from wp_posts where post_content like '%_blank%' and not post_content like '%noopener%'; 896 rows in set (0.27 sec) # 上記のリンクに rel="noopener" を付け加える mysql> UPDATE wp_posts SET post_content=REPLACE(post_content, 'target="_blank"', 'target="_blank" rel="noopener"') WHERE post_content like '%_blank%' and not post_content like '%noopener%';
[siteorigin_widget class=”AdWidgetItem”][/siteorigin_widget]
[siteorigin_widget class=”WP_Widget_Search”][/siteorigin_widget]
[siteorigin_widget class=”WP_Widget_Pages”][/siteorigin_widget]
[siteorigin_widget class=”AdWidgetItem”][/siteorigin_widget]