vagrant内のmysqlにworkbenchでアクセスする

sshを使ってやるのがいいと思います
vagrant内のmysqlは外からつながるようにしておいて

参考)mysqlに外からアクセスする

workbenchの設定はこんな感じ

workbench

Connection Method: Standard TCP/IP over SSH
SSH Hostnam : 127.0.0.1:2222
SSH username : vagrant
MySQL Hostn : 127.0.0.1
MySQL Server : 3306
Username : user

ユーザーとパスワードは環境に合わせてください

Workbenchでつなぐときに
known_hostsを消せ、とかエラーが出たら

$ ssh-keygen -R [127.0.0.1]:2222

で回避できます

mysqlに外からアクセスする

mysql入のサーバーへ外からmysqlにつないでみました
mysqlにログインしてユーザーを見てみます

$ mysql -u root -p
とかではいってまずは確認

mysql> select user, host from mysql.user;

+------------------+--------------------------+
| user             | host                     |
+------------------+--------------------------+
| root             | 127.0.0.1                |
| root             | ::1                      |
| root             | localhost                |
+------------------+--------------------------+

hostがつなぐとことができるものです
そとからつなげるユーザーを増やしてみます

mysql> grant all privileges on . to user@”%” identified by ‘password’ with grant option;

確認

mysql> select user, host from mysql.user;

+------------------+--------------------------+
| user             | host                     |
+------------------+--------------------------+
| user             | %                        |
| root             | 127.0.0.1                |
| root             | ::1                      |
| root             | localhost                |
+------------------+--------------------------+

これでuserというユーザーが外からつなげます

192.168.0.2のサーバーにつなぐとしたら
$ mysql -h 192.168.0.2 -u user -p
とコマンドをたたいてつながるか確認できます

Mysqlでのprimary keyとkeyを整理

mysqlのprimary key と key を整理

CREATE TABLE sample(
id int not null,
group_id int not null,
name varchar2(100),
age int,
PRIMARY KEY (id),
KEY(group_id)
);

PRIMARY KEYはプライマリーキー
KEYはINDEXのようです

カラム内に書くとPRIMARYは省略できるようで

CREATE TABLE sample(
id int KEY,
group_id int not null,
name varchar2(100),
age int,
KEY(group_id)
);

でもいいです

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.1.17 CREATE TABLE 構文

mysqlのtext型の最大サイズは?

WEBサイトの開発で、mysqlのtextのフィールドをつかったモデルにValidateをかけるためサイズを調べてみました

MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 6.5 データ型のストレージ要件

を参考に

textは 2の16乗 – 1 バイトまでのようです
65535バイトでValidateをかけるとよさそうです