MySQL8を入れて、memcached pluginを使うための忘備録
$ yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm $ yum install -y mysql-community-server mysql-community-client $ systemctl start mysqld $ grep "password" /var/log/mysqld.log $ mysql -uroot -p
rootで入ったらパスワードリセット
mysql> set password = 'P4$$w0rd';
mysql 5.7.6でpassword()でラップしなくて良くなったので
設定投入
mysql> create database innodb_memcache; mysql> use innodb_memcache; -- キャッシュポリシーの設定 mysql> CREATE TABLE IF NOT EXISTS `cache_policies` ( `policy_name` VARCHAR(40) PRIMARY KEY, `get_policy` ENUM('innodb_only', 'cache_only', 'caching','disabled') NOT NULL , `set_policy` ENUM('innodb_only', 'cache_only','caching','disabled') NOT NULL , `delete_policy` ENUM('innodb_only', 'cache_only', 'caching','disabled') NOT NULL, `flush_policy` ENUM('innodb_only', 'cache_only', 'caching','disabled') NOT NULL ) ENGINE = innodb; mysql> INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", "innodb_only", "innodb_only", "innodb_only"); -- テーブル/カラムとのマッピングを追加 mysql> CREATE TABLE IF NOT EXISTS `containers` ( `name` varchar(50) not null primary key, `db_schema` VARCHAR(250) NOT NULL, `db_table` VARCHAR(250) NOT NULL, `key_columns` VARCHAR(250) NOT NULL, `value_columns` VARCHAR(250), `flags` VARCHAR(250) NOT NULL DEFAULT "0", `cas_column` VARCHAR(250), `expire_time_column` VARCHAR(250), `unique_idx_name_on_key` VARCHAR(250) NOT NULL ) ENGINE = InnoDB; mysql> INSERT INTO containers VALUES ("aaa", "test", "demo_test", "key", "value", "flags", "cas", "expire", "PRIMARY"); -- 設定を追加 mysql> CREATE TABLE IF NOT EXISTS `config_options` ( `name` varchar(50) not null primary key, `value` varchar(50) ) ENGINE = InnoDB; mysql> INSERT INTO config_options VALUES("separator", "|"); mysql> INSERT INTO config_options VALUES("table_map_delimiter", ".");
テストデータの投入
mysql> create database test; mysql> use test; mysql> CREATE TABLE demo_test ( `key` VARCHAR(32) not null primary key, `value` VARCHAR(1024), `flags` INT, `cas` BIGINT UNSIGNED, `expire` INT ) ENGINE = InnoDB; mysql> INSERT INTO demo_test VALUES ("AA", "HELLO, HELLO", 8, 0, 0);
memcached pluginのインストール
mysql> install plugin daemon_memcached soname "libmemcached.so";
さすれば、11211でLISTENしてるので
$ netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN : : :
telnetでアクセスして試してみる
$ telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'. get AA VALUE AA 8 12 HELLO, HELLO END quit Connection closed by foreign host.