泣きながらプログラミング。

泣きながらプログラミングをする大学生のブログ

MySQL 5.7.16 でcreate user(windows用)

はじめに: rootユーザでログインする

新しいユーザを作るときは、まずrootユーザでログインする。
$mysql -u root -pパスワード

CREATE USERしてみる

$ mysql> create user
-> 'user1'@'localhost' identified by 'パスワード';

CREATE DATABASEしてみる

mysql> create database db1;

ユーザーに権限を付与 GRANTコマンド

mysql> grant all on db1.* to user1@localhost;

データベースの作成を確認 SHOW DATABASESコマンド

mysql> show databases;
以下例:
+----------+
| Database |
+---------+|
| db1 |
+----------+

insert文

mysql> use データベース名;
Database changed
mysql> select * from テーブル名;
Empty set (0.00 sec)

MySQL 5.7.16 でERROR 1820 (HY000): You must reset your passwordの対処法(windows用)

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

このエラー、rootのパスワードを初回設定から変えていないときに表示されます。これは単に、ALTER USERでrootユーザのパスワードを変更してしまえば解決です。
$ mysql -u root -p
Enter Password: パスワード
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新パスワード';

MySQL 5.7.16 でERROR 1045の対処法(windows用)

mysqlをインストールしたはいいけど、rootに入れず何もできない!

ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
のエラーが出ました。この解決法を紹介します。

  1. サービスが起動している場合はサービスを停止する(管理者コマンドプロンプト
    $ net stop mysql
  2. セーフモードで起動(管理者コマンドプロンプト
    $ mysqld -nt --skip-grant-tables
    ここで、処理待ちになりますが、裏で起動しています。なので、もう一つ普通のコマンドプロンプトを開きましょう。
  3. パスワードの設定
    mysql> $ update user set authentication_string=password("パスワード") where user='root';
  4. 権限の更新(?)
    mysql> $ FLUSH PRIVILEGES;

サービスの再起動かPC本体を再起動して、
$ mysql -u root -p
Enter Password: パスワード
と打てば、無事rootにログインできるはずです!

「ANOMALY: use of REX.w is meaningless」を最短で完全に直す方法

要約

「ANOMALY: use of REX.w is meaningless」が出るのが嫌な人は、トレンドマイクロに「パッチください」とメールしよう。

簡単な経緯

11月初期:コマンドプロンプトで特定の操作をすると、「ANOMALY: use of REX.w is meaningless (default operand size is 64)」が出るようになった。
先日:herokuコマンドがウイルスバスター動作時にエラーを吐くようになり、ほとんどのコマンドが使えなくなる。(このとき、「ANOMALY: use of REX.w is meaningless (default operand size is 64)」は表示されない) 今日:トレンドマイクロにメール。4時間ほどで返信がきてパッチをダウンロード。パッチを当てたところ、herokuが正常に動作。他のコマンドでも、「ANOMALY: use of REX.w is meaningless (default operand size is 64)」の表示はなくなった。

トレンドマイクロにメールしたら、多分パッチがもらえます!

僕はトレンドマイクロに直球で
「ANOMALY: use of REX.w is meaningless (default operand size is 64)に関係したエラーだと思うので、パッチをください。q&aにもパッチは個別に配布しているとの記載を見ました。」
といったところ、パッチがもらえました。このエラーに悩まされている方や、コマンドプロンプトを操作していてウイルスバスタークラウド11が起動中のみエラーが出るという方は、メールしてみるとよいでしょう。あれこれ検索するより、これが一番早いと思います。(トレンドマイクロから送られてくるとはいえ、非公開のパッチなので、環境によっては不具合が起こる可能性もありますので、自己責任でお願いします。)

mysql5.7をwindows10にインストールする

 mysqlをインストールしてみました。mysql5.6までとは若干手順が違うようでてこずりました。 他のサイトでインストールに失敗する方もこれを見ればおそらくできるはずです。

対象環境

windows10 64ビット

mysql5.7のダウンロード

 まずはmysql5.7を公式サイトからダウンロードしましょう。 64ビットの方であれば、Windows (x86, 64-bit), ZIP Archiveをダウンロードしましょう。 ダウンロードしたzipを解凍したら、まずは親フォルダ名をmysqlに変えます。そして、そのフォルダをCドライブ直下に移動させます。

my.iniの設定とdataフォルダの作成

 次に、mysqlフォルダにあるmy-default.iniをmy.iniにリネームします。 そして、my.iniをテキストエディタで開き、次のように書きます。 (最初の方のコメントはデフォルトで書いてあります。最後の5行分を追加しましょう。)

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
basedir = "C:/MySQL/"
datadir = "C:/MySQL/data/"
port = 3306
server_id = 1
character-set-server = utf8

ここで、
datedir="C:MySQL/data/"
という行がありますが、これはまだ作られていませんので、作りましょう。
C:\mysql> $ mkdir dataとするか、エクスプローラでC:\mysqlフォルダを開き、右クリックで新しいフォルダとして「data」という名前のフォルダを作成しましょう。

mysqlのインストール

 mysqlをインストールしていきましょう。 まず、デスクトップ左下のwindowsマークを右クリックし、「コマンドプロンプト(管理者)」を選択。 管理者用コマンドプロンプトで、以下のようにコマンドを入力しましょう。
$cd C:\mysql\bin

$mysqld --initialize

$mysqld --install-manual MySQL --defaults-file=c:\mysql\my.ini
Service successfully installed.

$net start mysql
MySQL サービスを停止中です.
MySQL サービスは正常に停止されました。

この表示になれば成功です! とくにこれから何もすることがなければ、 $net stop mysql
としましょう。

MySQL サービスを停止中です.
MySQL サービスは正常に停止されました。

と表示されれば成功です!

もしこれでできなかったら

気軽にコメントしてください。

エラーについて

エラーログは、今回作成したC:\mysql\dataフォルダにあります。
また、
$mysqld --initialize
をしないで、
$net start mysql
を実行すると、 MySQL サービスを開始します..
MySQL サービスを開始できませんでした。

サービスはエラーを報告しませんでした。
となります。--initializeをしなくても、--installは成功してしまうので、余計に厄介です。

【windows10】ウイルスバスターはherokuコマンドまでを使えなくさせるのか?

今日起こったこと

今日、1か月ぶりに$heroku loginしようとしたら、こんなエラーが。

!    Heroku client internal error.
 !    Search for help at: https://help.heroku.com
 !    Or report a bug at: https://github.com/heroku/heroku/issues/new

    Error:       undefined method `[]' for nil:NilClass (NoMethodError)
    Command:     heroku --version
    Version:     heroku/toolbelt/3.43.14 (i386-mingw32) ruby/2.1.7
    Error ID:   ***

 このエラー、全く解決策がヒットしない。とりあえず、再起動してもう一度やってみると・・・
なぜかheroku login できた。しかし、起動後少し経つと、また同じエラーが出る。このエラー、herokuコマンドのほぼすべての使い方ででます。しかし、起動後すぐはなぜかどのherokuコマンドも動く・・・
なんとなく、ウイルスバスターを無効にしてみたところ、エラーは出なくなりました。ということは、ウイルスバスターが原因なのか?結局よくわかりません。(herokuの本体があるフォルダを例外設定してもダメでした。)誰か知っている方がいれば教えてほしいです。

追記(11月21日)

 トレンドマイクロに「ANOMALY: use of REX.w is meaninglessと出るのにかかわるウイルスバスターの問題が原因だと思うので、これを直すパッチください」と言ったら、パッチをくれました。このパッチを当てたところこのherokuのエラーは出なくなりました。つまり、このエラーは、ウイルスバスターの「ANOMALY: use of REX.w is meaningless」に関係があったということでした。このエラーが出る人は、トレンドマイクロに「パッチください」とメールすればパッチをもらえるので、メールすることをお勧めします。(トレンドマイクロから送られてくるとはいえ、非公開のパッチなので、環境によっては不具合が起こる可能性もありますので、自己責任でお願いします。)

情報系大学生はrails tutorial をやるべき。rails tutorial 第3版の感想

 ミスターFです。実は先週、rails tutorialを終わらせました。なのでその感想を書いていきたいと思います

感想

情報系大学生はrails tutorialを絶対にやるべき。

理由
  • git を使えるようになる
    • gitとは簡単にいうとソースコードをオンラインで保存しておけるツールです。コードを編集して機能を追加したら、今まで動いていた部分にバグが起こった、というときなどに前のバージョンに戻すことができます。これは結構便利ですし、何よりプログラミングを仕事にする人はみんな使っているので、知っておく必要のあるツールです。
  • テストというものの存在を知れる
    • テストとは、ソースコードが部分的に意図した通りに動いているか確認できる仕組みです。web開発だとボタンをクリックしたり、ユーザ登録したりする機能を実際にチェックしていると非常に時間がかかります。テストはそのような面倒な操作を代わりに自動でやってくれるので、非常に便利です。習得には時間がかかりそうですが、その分早めに知っておく必要はあると思います。
  • ググる力・習慣(もしくは助けてくれる人)が身につく(tutorialに従っても確実にできるとは限らないから)
    • データベースのエラーなど、普段遭遇しないようなエラーがでます。そしてその解決策はstackoverflowなど英文の情報からしか見つからないこともあります。そんなググり地獄にぶち当たる経験は必要だと思います。
  • herokuのセットアップをするので、いつでも作ったサイトを公開できるようになる
    • herokuとは、簡単に言えばhtmlなどのファイルを公開サーバに保存し、インターネットに公開してくれるサービスです。これを使えるようになれば、これから何かサイトを作った時にすぐに公開することができます。
  • html,css,railsがどんなものかわかる
  • とりあえずtwitterもどきのアプリができるので、自信がつく

 こんなところです。railsが学べる、というよりは、プログラミングやソースコード管理、作ったコンテンツの公開方法などが学べたという意味でやった意味は大きかったです。逆に、gitの使い方やテストの概念、ググる力・習慣が身についている人には少しもの体内内容なのかもしれません。あくまでコストパフォーマンス的には、ですが。全部通すのにはなかなか時間がかかるので。とりあえず、情報系の学部でプログラミングの授業レベルからステップアップしたい、という方は挑戦するべきだと思いました。