- 追加された行はこの色です。
- 削除された行はこの色です。
// 一覧用テンプレート
#topicpath
----
***コンテンツ一覧 [#i8fa12cd]
#ls2
***TIPS集 [#p78c0dbc]
#contents
**別ホストのMySQLに接続する [#nd01d9e1]
別のホストに接続するには -h を使います。ユーザ名を指定してログインするときは-uを使います。また、パスワードも入力してログインするときは、-pを使います。
mysql -h [IPアドレス] -u root -p
これだとパスワードを聞いてくるので、コマンドラインに直接パスワードを書きたい場合は
mysql -h [IPアドレス] -u root --password=hoge
***文字セットを指定して接続する [#md75aab5]
mysql -u mkino --password=hoge --default-character-set=ujis
*** MySQL 5.0を使う [#c2f720e3]
Fedora Core release 3 (Heidelberg) にインストールしました。とりあえず、
MySQL-Max-5.0.15-0.i386.rpm
MySQL-server-5.0.15-0.i386.rpm
MySQL-client-5.0.15-0.i386.rpm <- Linux上のクライアント
mysql-administrator-1.1.4-win.msi <- Windowsのクライアントとして
で動いてるっぽいです。
*** データベースを作成する [#d036fe90]
mysql> CREATE DATABASE データベース名
*** データベースを表示する [#j9c0a1c4]
[root@www ~]# mysqlshow -uroot -p
Enter password:
+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| test |
| webdb1 |
+--------------------+
***データベース情報を表示する [#j291d710]
[root@www ~]# mysqlshow webdb1 -p -uroot
Enter password:
Database: webdb1
+--------+
| Tables |
+--------+
| rss |
+--------+
***テーブル情報を表示する [#z88c039d]
[root@www ~]# mysql webdb1 -p -uroot
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 53 to server version: 5.0.15-max-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> describe rss;
+-------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(255) | YES | | | |
| link | text | YES | | NULL | |
| date | datetime | NO | | 0000-00-00 00:00:00 | |
+-------+------------------+------+-----+---------------------+----------------+
4 rows in set (0.00 sec)
mysql>
*** テーブル定義を参照する [#qc88633b]
テーブルがどの様なSQL文で作成されたか表示します。
mysql> show create table webdb1.rss;
--------------------------+
| Table | Create Table
--------------------------+
| rss | CREATE TABLE `rss` (
`id` int(10) unsigned NOT NULL auto_increment,
`title` varchar(255) default '',
`link` text,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=ujis COMMENT='RSS List' |
+-------+---------------------------------------------------
1 row in set (0.00 sec)
参考:~
http://www.rfs.jp/sitebuilder/sql/04/07.html#SHOW%20CREATE%20TABLE
***my.cnfたちのある場所 [#y29b92f7]
rpmでインストールした場合、
/usr/share/mysql/my-medium.cnf
などにあるみたいです。
***ユーザ情報の削除。ユーザの追加 [#ca51c9e9]
DB Magazine 2004/12を読んだのですが、あらかじめ設定されているユーザ情報があると混乱するので、まずは消してからrootなどを新規作成した方がすっきりするとのこと。こんな感じでやってみました。
# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19 to server version: 5.0.15-standard
mysql> truncate table mysql.user;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from mysql.user;
Empty set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'hogehoge' with grant option;
Query OK, 0 rows affected (0.00 sec)
grantする前にログアウトしちゃうと、入れなくなっちゃうので注意!
あわせて、リモートで接続するためのIDも作成しておきます。
mysql> grant all privileges on webdb1.* to xxx identified by 'yyy';
Query OK, 0 rows affected (0.01 sec)
ところで
*.* to 'root'@'localhost' identified by 'hogehoge'
の意味は 全てのデータベースの全てのテーブル(*.*)にrootはlocalhostからのみ接続可能、パスワードはhogehoge という意味ですね。たとえばリモート接続可能で、webdb1というデータベースの全てのテーブルにアクセス可能なxxxというユーザを作成するには
webdb1.* to xxx identified by 'hogehoge'
となります。
***ユーザ追加 [#sc565914]
webdb1というデータベースに接続可能なhogeというユーザ(パスワードはfuga)を追加する
mysql> grant all privileges on webdb1.* to hoge identified by 'fuga';
Query OK, 0 rows affected (0.00 sec)
このユーザはリモートからも接続可能みたいですね。
このユーザはリモートからも接続可能みたいですね。ただしwebdb1というデータベースのみ。
***ユーザへ権限追加。 [#t001b2c3]
mysql> grant all privileges on webdb1.* to hoge identified by 'hogehoge';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on webdb2.* to hoge identified by 'hogehoge';
Query OK, 0 rows affected (0.00 sec)
とやっていけば、複数のデータベース(webdb1,webdb2)にアクセスできるようになる模様。
*** 他のユーザの権限を見る [#j5acda4a]
>mysql -u root mysql
mysql> use mysql;
Database changed
mysql> select * from user;
+-------------+------+----------+-------------+-------------+--------------+------------+ 〜
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Grant_priv | 〜
+-------------+------+----------+-------------+-------------+--------------+------------+ 〜
| localhost | root | | Y | Y | Y | Y | 〜
| ctkyos18121 | root | | Y | Y | Y | Y | 〜
| localhost | | | N | N | N | N | 〜
| ctkyos18121 | | | N | N | N | N | 〜
+-------------+------+----------+-------------+-------------+--------------+------------+ 〜
4 rows in set (0.01 sec)
mysql>
***環境設定を参照する [#c927aa3b]
mysqladmin variable
***文字コードを指定して、接続する [#n816fda4]
mysql -u xxxx -h xxx.xxx.xxx.xxx -p --default-character-set=ujis
など
***ユーザ情報の削除。ユーザの追加 [#ca51c9e9]
DB Magazine 2004/12を読んだのですが、あらかじめ設定されているユーザ情報があると混乱するので、まずは消してからrootなどを新規作成した方がすっきりするとのこと。こんな感じでやってみました。
# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19 to server version: 5.0.15-standard
mysql> truncate table mysql.user;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from mysql.user;
Empty set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'hogehoge' with grant option;
Query OK, 0 rows affected (0.00 sec)
grantする前にログアウトしちゃうと、入れなくなっちゃうので注意!
あわせて、リモートで接続するためのIDも作成しておきます。
mysql> grant all privileges on webdb1.* to xxx identified by 'yyy';
Query OK, 0 rows affected (0.01 sec)
***ログのディレクトリ [#k7ebf345]
/var/lib/mysql/hogehoge.err
errっていっても標準出力もココのような。。。
***バイナリログを切り替える [#z6245b3b]
バイナリログとは、いわゆるトランザクションのログです。実行されたSQL文が格納されています。
このログの書き込みファイル名をIncrementするのが以下のコマンドです。
$ mysqladmin flush-logs -u root --password=xxxxx
つまりこのファイルを
***バイナリログを表示する [#f7d267d2]
$ mysqlbinlog バイナリログファイル名
これでバイナリログを表示することができます。
***関連リンク [#nd56bba6]
-[[Error - "Host not allowed to connect to server" / / MySQL Data Base 接続方法:http://www.sqlgate.com/jp/support/connectmysql.html]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}