场景:在 mac osx 10.10 下安装 mysql 5.6 的二进制文件。
环境:mac osx 10.10、mysql 5.6 的二进制文件
步骤:[所有目录请从根“/”目录开始取,以免层级弄错导致找不到目录]
1、下载 mysql 5.6 的二进制文件,下载目录下面称之为 mysql5.6SourceDir;
下载地址:http://dev.mysql.com/downloads/mysql/
下载:mysql-5.6.24-osx10.9-x86_64.tar.gz 二进制包
2、解压文件包到你的安装目录,下面我称之为 mysql5.6Dir. 注:如果安装目录不是 "/usr/local/mysql", 将要修改配置文件,因为有配置文件中默认是安装 "/usr/local/mysql" 这个目录中的,懂得这个配置后,你就可以把 mysql 安装到你想安装的任何目录。
进入下载目录
$ cd mysql5.6SourceDir
解压命令:
$ tar -xf mysql-5.6.24-osx10.9-x86_64.tar.gz
移动解压文件到你的安装目录:mysql5.6Dir
$ mv mysql-5.6.24-osx10.9-x86_64/* mysql5.6Dir
3、安装数据库,因为 mac 是基于 unix 开发的,所以安装可以参考mysql官网unix下安装二进制包的帮助文档:http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html
注意只是参考,安装方法并不完全一样。
3.1、进入到安装目录 mysql5.6Dir
$ cd mysql5.6Dir
3.2、执行安装
$ scripts/mysql_install_db
3.3、此时在你的安装目录 mysql5.6Dir 生成一个 my.cnf 文件,这个文件是用来配置你的mysql 的,如何根据自己的需要去配置,就不细说了。只说几个必须配置的;
打开 my.cnf;[如何打开,用vi或其他app也好,请自选解决]
添加配置选项
basedir = mysql5.6Dir
datadir = mysql5.6Dir/data
socket = mysql5.6Dir/tmp/mysql.sock
[注意 mysql.sock 文件是在 mysql 启动后才会生成,关闭mysql 时这个文件会删除掉]
3.4、添加指向 mysql.sock 的连接文件, /tmp/mysql.sock;[数据库开启服务后,连接数据库服务时,系统会自动去加载 tmp 这个目录下的 mysql.sock 文件,我们前面指定生成在mysql5.6Dir/tmp/ 这个目录下,当然可以直接生成在 /tmp 这个目录下,但是当你不是用 root 用户安装时,往往在启动时会报没权限的错误,当然你可以自己去赋权限,我是先安装在一个我具有权限的目录,然后把系统自动加载的文件做成一个连接文件指向我生成的mysql.sock];
用 root 用户权限,手动新建 tmp 目录,并把操作、读、写 权限赋给你所使用安装,启动mysql 的用户
另打开一个:terminal 窗口
$ sudo -i
输入root 密码,回车;
$ mkdir /tmp
$ chown -r [安装和启动 mydql 的用户名] /tmp;
关闭这个 terminal 窗口,回到原来的 terminal 窗口,执行命令
$ ln -s mysql5.6Dir/tmp/mysql.sock /tmp/mysql.sock
4、启动和停止 mysql 服务
4.1、启动:
方法一:
$ mysql5.6Dir/bin/mysqld_safe
方法二:
$ mysql5.6Dir/support-files/mysql.server start
4.2、停止
$ mysql5.6Dir/support-files/mysql.server stop
注:使用 mysql.server 脚本时,要先在脚本中添加:basedir = mysql5.6Dir
support-files/mysql.server start 时,他还是会去调 mysql5.6Dir/bin/mysqld_safe,所以 mysql5.6Dir/my.cnf 中的配置还是有效;
mysql 默认的用户是 root, 密码为空,你在安装完成后可以修改密码,如何修改请参照 mysql 操作指令。
----安装、启动完成
报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
没有找 /tmp/mysql.sock 文件;请参照 步骤 3.4 修改解决
ERROR! MySQL server PID file could not be found!
打不到 mysql server 的 pid 文件,请参照 步骤 4.2 的“注” 修改解决
5、解决远程不能连接的报错:
ERROR 1130 (HY000): Host '192.168.1.123' is not allowed to connect to this MySQL server
这个是由于 mysql 服务不允许些用户从这个 ip 登录;
解决方法:两个,一赋与权限,二 修改系统表;
a、赋与权限
在mysql服务器上登录mysql后进行如下操作:
1、允许用户从此ip的主机连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON [dataBaseName] TO [userName]@['%’] IDENTIFIED BY ‘UserPassword’ WITH GRANT OPTION;
2、允许用户从任何ip的主机连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON [dataBaseName] TO [userName]@[ip] IDENTIFIED BY ‘UserPassword’ WITH GRANT OPTION;
注:dataBaseName 是指让用户可以使用服务中的哪个实例,如果为所有实例请用 *.*;
b、修改系统表;
在mysql服务器上登录mysql后进行如下操作:
mysql> use mysql;
mysql> update user set host='ip[当ip为%表示允许此用户从任何ip登录]' where user='root' and host='localhost';
mysql> flush privileges;
你可以向表 user 中插入一条你自己指定权限的数据,host: ip[当ip为%表示允许此用户从任何ip登录 user 字段为你要赋权的用户名,其他权限字段请参考 mysql 权限说明;
然后执行:
mysql> flush privileges;
这样权限就生效了,
flush privileges 是使权限生效的指令,因为修改了系统表后,权限没有立即生效,要执行这个语句才能让权限生效。
6、收回用户远程连接的权限:
修改系统表;
在mysql服务器上登录mysql后进行如下操作:
mysql> use mysql;
mysql> delete from user where host='ip[与赋权时写成一至]' and user='root';
mysql> flush privileges;
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email :
[email protected]
qq : 1035862795
敲门砖: 代码谱写人生