FrontPage
>>
Log
>>
MySQL
last edited 7 years ago
とりあえず、プリインストールの3.23.x を使用することにする。
パスは通っている前提。/etc/init.d/mysqld start もしている前提。
まずroot.
$ mysqladmin -u root password 'new-password'
hostを指定する場合は
$ mysqladmin -u root -h hostname password 'new-password'
$ mysql -u root -p #アクセスしてみる。mysql> とプロンプトが出ればOK
mysql> show databases # なんかでる。少なくとも mysql はでる。
Web用にDBを追加する
mysql> CREATE DATABASE webdb; # webdb というのをつくる
Web用にアカウントを追加する。webop というアカウントをwebdb用につくる
mysql> GRANT ALL ON webdb.* TO webop@localhost IDENTIFIED BY "Himitsu";
Query OK, 0 rows affected (0.00 sec)
権限状態のフラッシュ(忘れないように)
mysql> FLUSH PRIVILEGES;
不要なUser の消去
mysql> use mysql # MySQL内部DBにスイッチ
mysql> show tables;
mysql> describe user; # 状態を見る(消すだけなら不要)
mysql> select host, user, password from user;
+-----------+-------+------------------+
| host | user | password |
+-----------+-------+------------------+
| localhost | root | 130b100f2fba776b |
| pakupaku | root | |
| localhost | | |
| pakupaku | | |
| localhost | webop | 340ab3a21258d801 |
+-----------+-------+------------------+
mysql> delete from user where password = ""; # パスワードが空のuserを消す
mysql> select host, user, password from user; # 念のため、再度みる。結果は省略。
mysql> flush privileges; # 権限状態のフラッシュ(忘れないように)
不要なDBの削除
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
| webdb |
+----------+
testを消す。テーブルを消すときは useしてから drop table <tablename>
mysql> drop database test; # 確認とか、そういうのは一切ないので注意
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| webdb |
+----------+
mysql> exit
Bye
$ mysqladmin reload -u root # 念のため。いらないと思うけど。
で、参照用の myviewer と、更新(管理)用の myadminができた(はず)。
・ Zopeから参照
適当なディレクトリで、プルダウンから Z MySQL Connection をAdd
Database connection string は "webdb webop Himitsu" になる(上記例の場合)。
Test タブから
CREATE TABLE company (
companyid INTEGER NOT NULL,
name VARCHAR(100),
postal CHAR(7),
address VARCHAR(100),
PRIMARY KEY(companyid));
とかいれて、エラーがでなければ接続がうまくいっている。
Browse タブを見ると、テーブルが見えるはず。
・name を長くする: alter table company modify name varchar(255) NOT NULL # varchar の max が 255
・Some non-transactional changed tables couldn't be rolled back という warning がでて実行できない
Z MySQL DA の Database Connection String の database 名の前に「-」をつけると warning を無視するようになる。