OSX下社区办osx mysql gz刚安装 怎么设置用户名密码啊

【MySQL札记】mysql源码安装/配置步骤及支持中文gbk/gb2312编码的配置方法_【保藏】MySQL的NoSQL扩展-HandlerSocket插件_用Time Capsule筹建Win和Mac共享平台__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
【MySQL札记】mysql源码安装/配置步骤及支持中文gbk/gb2312编码的配置方法
【保藏】MySQL的NoSQL扩展-HandlerSocket插件
用Time Capsule筹建Win和Mac共享平台
【MySQL札记】mysql源码安装/配置步骤及支持中文gbk/gb2312编码的配置方法
【MySQL笔记】mysql源码安装/配置步骤及支持中文gbk/gb2312编码的配置方法好久之前的学习笔记,分享出来,希望能帮助到更多初学者
备注:本笔记以mysql-5.1.73版本为例进行说明
1. mysql源码编译/安装步骤
1) 官网下载mysql源码并解压
2) cd至源码目录,执行
./configure
--prefix=/home/slvher/tools/mysql-5.1.73 --with-charset=gbk --with-charset=gb2312 --with-extra-charsets=all --with-plugins=max-no-ndb
--prefix指定安装目录,需根据实际情况修改
--with-charset指定默认支持的字符集,可指定多个(若需要数据库支持简体中文,请务必指定gbk和gb2312,至少要指定1个)
--with-plugins指定安装innodb引擎(从mysql5.1版本开始需要手动指定,之前则是默认安装的)3) 查看Makefile文件,确认几个基本配置无误后,执行
shell& make
shell& make install
备注1:若install失败是由第2步执行./configure时参数指定错误所致,则需重新执行./configure且务必执行make
clean后,再重新make && make install。若不先make clean直接make,则源码目录下上次编译完的部分文件不会重新编译,而这些上次编译的文件使用的还是上次的错误配置参数!
备注2:安装完成后,cd至mysql安装目录(通过--prefix指定的路径或默认的系统路径),可以看到bin/include/lib之类的文件夹,这表明二进制文件安装成功4) 从源码目录的support-files文件夹拷贝f(共有small/medium/large三个level,根据机器配置选择合适的)配置至~/.my.cnf文件,并配置相关参数。mysql server启动时会读取该文件的配置,关于mysql对my.cnf文件的搜索路径,可以查看官方的mysql-refman文档。
备注:my.cnf配置不当可能会引起mysql报错,例如"mysql: unknown variable 'character-set-server=utf8'",该问题解决方法参见这里5) 在mysql安装目录先后执行如下命令以便安装权限表及默认数据库 ./bin/mysql_install_db --basedir=/home/slvher/tools/mysql-5.1.73 --datadir=/home/slvher/tools/mysql-5.1.73/db-data
./bin/mysql_install_db --user=slvher
6) 在mysql安装目录执行如下命令启动mysqld: ./bin/mysqld_safe &7) 执行ps -x查看mysqld是否启动成功,其中d表示守护模式。因此,正常的关闭mysqlserver的方法应该是下面的命令:./bin/mysqladmin shutdown -uroot -p
然后输入root密码即可停掉mysqld进程,若强行kill -9杀进程可能会导致数据库损坏!8) 将mysql执行路径加入PATH变量的搜索路径
至此,支持中文gbk和gb2312的mysql server安装完成。可执行以下命令验证其支持的字符集:
shell& mysql -uroot
备注1:新安装的mysql server,root默认密码为空
备注2:若在第2步执行./configurer时通过--with-charset参数指定了gbk或gb2312,则show的输出应该能看到这些字符集,否则,就准备重新安装一遍吧 -_-
2. 安装完成并启动mysqld_safe后的访问权限配置
1) 设定mysql server的root密码
root密码默认为空(因此,运行mysql -uroot可直接登录;此外,登录后运行"select User, Host, Password from mysql.user"可以看到root的Password那个字段为空),所以需要设定root密码,方法有几种:
a. 使用set password语句:
shell& mysql -u root
mysql& set password for 'root'@'localhost' = PASSWORD('xxx');
# 其中xxx为新密码
mysql& set password for 'root'@'host_name' = PASSWORD('xxx');
# 其中host_name为机器名
mysql& set password for 'root'@'127.0.0.1' = PASSWORD('xxx');
b. 使用update语句:
shell& mysql -u root
mysql& update mysql.user set Password = PASSWORD('xxx') where User = 'root';
# 该语句会让mysql server重新读取权限表
若root对应的Host字段有多个,则推荐使用这种方法指定root密码,因为它明显更简洁。
c. 使用mysqladmin工具:
shell& mysqladmin -u root password "xxx"
shell& mysqladmin -u root -h host_name passord "xxx"
这种方法无法设定形如'root'@'127.0.0.1'的root新密码,故个人觉得用处不大。
注意:新安装的mysql server默认允许本机匿名用户登录,若不需要,最好删除匿名用户。
2) 添加新用户并授权
由于root权限过大,有必要为mysql添加normal user并设定其权限,可通过以下步骤实现(假设已登录了mysql server所在机器):
shell& mysql -u root -pxxx
# 注意-p与password(假设为"xxx")间无空格,可省去输入密码的交互过程
mysql& grant select on db1.test_table to 'user'@'localhost' identified by 'xxx';
上述grant语句执行效果:从localhost登录的user必须用xxx密码才能登录成功,且只能访问数据库db1的test_table表。
若要为从localhost登录的user授权对所有库所有表的全部操作权限,则可执行如下命令:
mysql& grant all privileges on *.* to 'user'@'localhost' identified by 'xxx';
若为远程登录的用户授权(对db1.test_table的select/insert权限),则需执行下面的命令:
mysql& grant select, insert on db1.test_table to 'user'@'%' identified by 'xxx';
上述语句中的'%'表示任意主机,因此可以覆盖远程登录的情况。
注意1:有时对远程登录用户授权时会发现,即使执行了上述命令,用户依然无法远程登录。这种情况一般是由于该用户名首先命中了权限表的某条不支持远程登录的记录(如不允许来自某个IP地址的用户登录)。排查问题时,可执行select User, Host, Password from mysql.user where User =
'user'以查看user用户目前拥有的权限,定位其是否具有从任意机器登录的权限或是否某个记录明确指定了user用户不能从某台特定的机器登录。
注意2:有时完成远程用户登录设置后会发现,远程登录正常,而本地通过-h localhost 或 -h 127.0.0.1登录时却无法成功,这一般是由于允许本机匿名用户无密码登录造成的(mysql server默认允许匿名登录),只需删除匿名用户的登录权限即可。
【参考资料】
mysql reference manual
2. mysql: unknown variable 'character-set-server=utf8'解决方法
========================= EOF ==========================
【保藏】MySQL的NoSQL扩展-HandlerSocket插件
【收藏】MySQL的NoSQL扩展---HandlerSocket插件MySQL的NoSQL扩展---HandlerSocket插件
一.HandlerSocket介绍:
2010年11月日本社交游戏开发公司DeNA发布了MySQL HandlerSocket插件。Handlersocket插件是由日本人Yoshinori Matsunobu开发的。传统的关系型数据库在处理每个请求的时候,都需要做SQL解析,查询优化,执行,事务管理,锁管理等一系列的开销操作,消耗性能。非关系型数据库(NoSQL)就去掉了这些操作。通过handlersocket插件,可以直接跟MySQL的存储引擎层做key-value式的交互操作,省略了MySQL的SQL层次的处理,大大的减少了资源的开销。
二.HandlerSocket架构:
HandlerSocket在MySQL内部实现一个NoSQL的网络服务,以mysqld进程的daemon存在,监听特定端口(9998和9999)与client通过TCP/IP接收NoSQL的协议和API,然后通过MySQL存储引擎API直接进行CRUD相关的操作。同时,还可以通过传统的MySQL的方式进行操作。
简单快速的操作通过handlersocket来实现。复杂的操作通过传统的MySQL方式来实现。
HandlerSocket结构图如下:
1.MySQL Client àMySQL Upper Layer àStorage Engine Layer
使用MySQL传统的方式,客户端通过3306端口与Upper层交互,在Upper层进行SQL解析,打开表,查询优化,关闭表等等操作,然后再提交到Storage Engine 层。
2.HandlerSocket Client àHandlerSocket daemon plugin àStorage Engine Layer
使用HandlerSocket方式,减少了很多在传统方式下的SQL层的操作。使用9998端口进行读操作,使用9999端口进行写操作。
三.HandlerSocket优缺点:
1.省去了MySQL的SQL层相关的操作,大大的减少了CPU的消耗。
2. 采用合并操作的方式,合并多个请求同时执行,减少了CPU开销和IO操作次数。
3. 基于简单的文本协议,节省网络流量,提高网络吞吐量。
4. 能同时使用传统的MySQL和HandlerSocket的方式访问MySQL数据库,互不冲突。
5. 支持大的并发连接。
6. 可以继续使用MySQL的Replication等等成熟机制。
7. 避免有双重缓存。
8. 具有较高的读写性能,在CPU Bound的场景中,读取性能一般是同等环境下的MySQL的3-7.5倍。同时写入性能也能达到3-5倍。
不足之处:
1.由于采用合并操作的方式,响应时间比MySQL来说大一些。
2.没有安全相关的保证,绝大部分NoSQL产品都有这样的问题。
3.在IO Bound的场景中,性能的提升可能不是很明显。
4.目前只支持MySQL5.1和MySQL5.5版本的Innodb存储引擎。
四.HandlerSocket的安装:
1.下载安装
/ahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6-71-g159ea6d.tar.gz
# tar zxvf ahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6-71-g159ea6d.tar.gz -C ../software/
cd ../software/ahiguti-HandlerSocket-Plugin-for-MySQL-159ea6d/
# ./autogen.sh
# ./configure --prefix=/usr/local/handlersocket
--with-mysql-source=/usr/local/src/software/mysql-5.1.36
//mysql源码目录
--with-mysql-bindir=/usr/local/mysql-5.1.36/bin //mysql安装目录可执行目录
--with-mysql-plugindir=/usr/local/mysql-5.1.36/lib/mysql/plugin //mysql插件目录
# make install
2.修改配置文件
在<f文件[mysqld]下增加以下配置:
loose_handlersocket_port = 9998
//指定读请求端口号
loose_handlersocket_port_wr = 9999 //指定写请求端口号
loose_handlersocket_threads = 16 //指定读线程数目
loose_handlersocket_threads_wr = 1 //指定写线程数目
3.安装handlersocket.so:
& INSTALL PLUGIN handlersocket SONAME 'handlersocket.so';
4.查看进程状态
# netstat -ntpl
0 0.0.0.0:3306
31402/mysqld
0 0.0.0.0:9998
31402/mysqld
0 0.0.0.0:9999
31402/mysqld
5.常见问题
configure: error: MySQL source version does not match MySQL binary version
解决方法:在configure.in文件中首行添加一行[MySQL Server] 5.1.36。
五.HandlerSocket性能测试:
先来看看软件作者的测试结果:
环境:2.53GHZ,8核CPU,32G内存的Nehalem服务器
六.安装PHP扩展包php-handlersocket
# wget http://php-/files/php-handlersocket-0.0.7.tar.gz
# tar zxvf php-handlersocket-0.0.7.tar.gz -C ../software/
# /usr/local/php5.2.13/bin/phpize
# ./configure --prefix=/usr/local/php-handlersocket \
--with-php-config=/usr/local/php5.2.13/bin/php-config \
--with-handlersocket \
--with-handlersocket-includedir=/usr/local/handlersocket/include/handlersocket
# make install
# vim /usr/local/Zend/etc/php.ini
添加下面一行
extension=/usr/local/php5.2.13/lib/php/extensions/no-debug-zts-/handlersocket.so
查看是否加载成功:
常见问题:
cc -shared
.libs/handlersocket.o
-lstdc++ -L/usr/local/handlersocket/include/handlersocket/lib -lhsclient
-Wl,-rpath -Wl,/usr/local/handlersocket/include/handlersocket/lib -Wl,-soname -Wl,handlersocket.so -o .libs/handlersocket.so
/usr/bin/ld: cannot find -lhsclient
collect2: ld returned 1 exit status
make: *** [handlersocket.la] Error 1
解决方法:# cd /usr/local/handlersocket
# cp -rf lib include/handlersocket/
七.测试:
1.建立测试表
create table `test_hs` (
-& `id` int(10) auto_increment not null,
-& `k` varchar(50) default null,
-& `v` varchar(50) default null,
-& primary key (`id`),
-& key `index_k` (`k`)
-& )engine=
mysql& insert into test_hs values ('','k1','v1');
mysql& insert into test_hs values ('','k2','v2');
mysql& insert into test_hs values ('','k3','v3');
2.PHP使用实例
$host = 'localhost';
$port = 9998;
$port_wr = 9999;
$dbname = 'hstestdb';
$table = 'hstesttbl';
$hs = new HandlerSocket($host, $port);
if (!($hs-&openIndex(1, $dbname, $table, HandlerSocket::PRIMARY, 'k,v')))
echo $hs-&getError(), PHP_EOL;
$retval = $hs-&executeSingle(1, '=', array('k1'), 1, 0);
var_dump($retval);
$retval = $hs-&executeMulti(
array(array(1, '=', array('k1'), 1, 0),
array(1, '=', array('k2'), 1, 0)));
var_dump($retval);
unset($hs);
$hs = new HandlerSocket($host, $port_wr);
if (!($hs-&openIndex(2, $dbname, $table, '', 'v')))
echo $hs-&getError(), PHP_EOL;
if (!($hs-&executeUpdate(2, '=', array('k1'), array('V1'), 1, 0)))
echo $hs-&getError(), PHP_EOL;
unset($hs);
$hs = new HandlerSocket($host, $port_wr);
if (!($hs-&openIndex(3, $dbname, $table, '', 'k,v')))
echo $hs-&getError(), PHP_EOL;
if (!($hs-&executeInsert(3, array('k2', 'v2'))))
echo $hs-&getError(), PHP_EOL;
if (!($hs-&executeInsert(3, array('k3', 'v3'))))
echo $hs-&getError(), PHP_EOL;
if (!($hs-&executeInsert(3, array('k4', 'v4'))))
echo $hs-&getError(), PHP_EOL;
unset($hs);
$hs = new HandlerSocket($host, $port_wr);
if (!($hs-&openIndex(4, $dbname, $table, '', '')))
echo $hs-&getError(), PHP_EOL;
if (!($hs-&executeDelete(4, '=', array('k2'))))
echo $hs-&getError(), PHP_EOL;
3.方法注释
openIndex(1, $dbname, $table, HandlerSocket::PRIMARY, 'k,v')
打开索引,第一个参数1用来在每个HandlerSocket对象中唯一标识一个表名;$dbname表示为数据库名;$table表示为表名;HandlerSocket::PRIMARY表示为索引名;'k,v'表示为要查询的列名。
executeSingle(1, '=', array('k1'), 1, 0)
执行查询,第一个参数要跟之前的openIndex方法中的第一个参数保持一致;第二个参数’=’表示检索的条件,支持’=’,’&=’,’&=’,’&’,’&’;第三个参数array(‘k1’)表示一个arrayref,指定检索的key,其长度必须小于或者等于对应索引的列数;第四个和第五个参数指定查询的limit和offset。
executeMulti 可在一次调用中执行多个操作。
用Time Capsule筹建Win和Mac共享平台
用Time Capsule搭建Win和Mac共享平台
从Win转到Mac除了使用习惯以外,另一个方面就是软件的适应,还有最重要的数据迁移。虽然Mac提供了数据迁移助理这样的工具,但是实际上还有相当一部分动态数据需要逐步迁移,毕竟工作习惯和场景的过渡需要一些时间。有些已经在Win平台中开展的工作不可能马上迁移到Mac平台当中来,一则是有些软件并不是两个平台上都有,还有就是使用习惯的调整也需要时间。
我采用的方式是两台笔记本都开,中间用Time Capsule搭建数据共享。这样不用一股脑把Win中的很多用不到的东西导过去,可以在使用和数据沉淀的过程中逐步平滑迁移,同时能有针对性的进行数据的备份和共享。
当然,给苹果笔记本安装双系统,或者在Mac中安装Win虚拟机都是不错的方案,不过共享数据这种渐进的方式,也不失为一个自在的选择。在使用过程中逐步过渡,既不急于导数据,也不急于找各种软件。
Time Capsule是一款整合802.11n无线存取和一般网络连接的储存装置。等于Airport Extreme + 硬盘,因此,你可以仅仅把它当作一个无线路由和一个额外的硬盘来使用。 其设计的初衷是在Mac Os下,配合软件Time Machine,对你的整个系统数据进行备份。 每小时、每天、每周….这样,在你无意中删除或毁坏文件的情况下,可以“时空穿梭到以前“,把那个文件恢复回来。… 对于做视频、PHOTO、设计的人来说会很有用。Time Capsule上的USB接口可以连接USB打印机,也可以连接一个移动硬盘。
除了给Mac OS系统使用以外,还可以在Windows系统中使用,只需要安装一个AirPort 实用工具。正是基于这一点,我们可以利用Time Capsule快速简单的搭建两个系统之间的共享平台。如果在Airport工具中打开了客人共享(只读、读取和写入),其他人如果也加入当前网络并安装过AirPort 实用工具,不需要密码也能访问这个共享磁盘。
Mac中默认已经安装有AirPort工具(LaunchPad–实用工具),Windows中安装以后,会在任务栏加载一个AirPort基站代理图标。开机自动加载网络硬盘。
需要注意的是,在Airport的磁盘配置中,需要打开文件共享才可以在资源管理器中看到共享的磁盘。
另外一个条件就是要共享网络硬盘的多台设备都需要通过Time Capsule接入网络,无线或有线方式都可以。
配置好Time Capsule,以后就可以直接在Finder和资源管理器中同时访问共享的磁盘,保存和交换文件。渐进的将Win中的数据慢慢备份到Time Capsule共享磁盘中,在进一步熟悉Mac的过程中逐步安装需要的软件,搭建工作环境。同时配合Time Machine的Time Capsule的备份功能也会让你没有Mac使用上的后顾之忧。
PS: Win系统中不安装AirPort 实用工具其实也可以直接访问,只要开着文件共享即可。
如上图Time Capsule 名称所示,在Win系统资源管理器中直接输入\\scomper-tc也可访问你的TC。
首次连接会如同访问网上邻居一样需要输入用户名和密码。
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:11841人阅读
一 下载MySQL
&&& 访问MySQL的官网&然后在页面中会看到“MySQL
Community Server”下方有一个“download”点击。
进入MySQL的下载界面(/downloads/mysql/),如果你是用的Mac OS来访问的话那么就会默认为你选好了Mac OS X 平台,而下面罗列的都是在Mac OS上能用的MySQL的版本,如果是用的其他平台,在“Select Platform”选项的下拉列表中选一下就好了。
&&&&& 在Mac OS上的MySQL的版本很多,其中有按平台来的,比如10.5/10.6等平台,然后有32位的和64位的,这个你按照自己系统的情况来进行选择,然后就是文件的后缀名有.tar.gz的和.dmg的,这里我选择的是.dmg的。点击右侧的download进行下载。
&&&&& &然后会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选择最下面的“No thanks,just take me to downloads!”,然后这才真正跳转到了下载的界面,这个界面列了很多的供下载的服务器,选择一个服务器进行下载就OK了。
二 安装MySQL
&&&&& 打开MySQL的安装包:
mysql-5.5.16-osx10.6-x86_64.pkg:这个是MySql的主要程序包;
MySQL_StartupItem.pkg:MySql的启动项;
MySQL.prefPane:安装完成后会在系统的偏好设置里面出现,是MySQL的偏好设置,里面主要是用来启动MySQL服务的.
三 下载安装MySQL Workbench(GUI Tool)
3.1 MySQL Workbench的下载
&&&&& 访问&在下面有一个MySQL
Workbench(GUI Tool)的项,点击其下的DOWNLOAD即可进入下载界面:
&&&&& 然后同样选择版本之后选择服务器进行下载。这里貌&#20284;只有一个版本:
3.2 MySQL Workbench的安装
下载完成之后安装就非常简单,双击即可安装。安装完成之后我们在“应用程序”里面就能看到MySQL Workbench.app程序了。双击打开:
到这里MySql Workbench就安装完毕了。
&&&&& 安装完成之后我们就讲MySQL Workbench连接到MySQL的数据库上,然后对数据库进行管理。
3.3&建立一个新连接
&&&&& 可以看到MySQL Workbench的主界面有三大模块,SQL Development,Data Modeling,Server Administration。其中在SQL Development下面有一个“New Connection”点击之后就会出现一个“Setup New Connection”的对话框,填写完Connetion Name之后点击Ok。即可完成一个连接到本地数据库的连接。
&& 完成之后在主界面的就会出现刚才建立的连接,如下图:
&双击连接名或者选中一个连接之后点击“Open Connection to Start Querying”,即可进入这个操作数据库的界面:
这些所有的前提都是数据库服务得打开。
3.4&管理数据库的访问密码
&&&&& MySQL的默认账号密码是root/root,正常情况下我们如果单纯的只是使用MySQL Workbench来管理数据库的这个账号是可以的,但是当我们在编程代码中通过jdbc来访问MySQL时我们就会发现使用这个账号是不行,无法访问,因为MySQL需要我们更改密码,也就是说root这个是个默认的密码也就是弱密码,需要我们修改之后才能在代码中使用。因此我们需要来管理数据库的访问密码。
&&&&& 新建一个Server Instance
&&&&& 在“Server Administration”模块下有个“New Server Instance”点击之后会弹出一个“Create New Server Instance Profile”的对话框,跟着对话框的一步一步走就可以完成,一般本地的数据库直接跟着默认设置就ok。完成之后我们就能够在Workbench的主界面最右边看到刚才建立的instance。
双击打开管理器,这里需要密码,一般还没改过的就是root。然后在左侧的菜单栏下有个“SECURITY”下面有个“Users and Privileges”的子菜单项,选择就会看到如下界面:
在右侧的面板中有一个User Accounts的列表,选择其中要修改密码的账号,然后在右侧修改密码即可。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:578977次
积分:6671
积分:6671
排名:第1275名
原创:126篇
转载:237篇
评论:122条
(1)(26)(1)(1)(8)(3)(4)(8)(4)(1)(1)(9)(3)(2)(1)(2)(2)(1)(4)(8)(3)(4)(1)(3)(11)(7)(2)(3)(1)(1)(2)(3)(4)(4)(2)(6)(5)(7)(5)(17)(17)(1)(10)(6)(16)(11)(4)(9)(3)(15)(18)(7)(16)(29)(12)(7)(1)收藏,12.8k 浏览
用了一年的Mac OS X了,之前不熟悉这个系统,用的是系统自带的PHP 以及DMG包安装的MySQL,时间长了,慢慢觉得MacBook的速度跟不上了,虽然关机次数不多,但是每次开机,或者唤醒电脑的时候,系统明显有一定时间的卡顿。特别表现在开机的时候。完全可以去泡一个来一桶了。 因此干掉MD101上的光驱,换上256G的Sandisk SSD, 干掉原厂的2G * 2,换上8G * 2 。 速度应该是杠杠的了,至少可以再服役2年吧。
趁着这次加硬盘的机会,就准备彻底重做开发环境。现在对Mac也有了一定的了解,特地记录一下本次的开发环境安装详情,给自己一个备忘,希望也可以帮助到刚接触Mac环境的同学们。本开发环境,全部基于安装。
主要软件版本:PHP5.5.14,Nginx 1.6.0,MySQL5.6.19
OS X Mavericks
重新安装系统,在苹果商店下载好OS X Mavericks安装文件,然后准备一支16G的USB3.0 U盘。制作OS X Mavericks 全新安装启动U盘。
插上U盘,在终端执行:sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/untitled --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeractionuntitled 是你的u盘盘符,根据实际情况来。
Erasing Disk: 0%… 10%… 20%… 30%…100%…
&Copying installer files to disk…
Copy complete.
Making disk bootable…
Copying boot files…
&Copy complete.
看到上面的信息说明启动盘制作成功。 安装起来so easy :)
安装完成系统之后, 暂时还没有去迁移文件,由于本人喜好摄影,有大量RAW格式的原图在Aperture 的照片库中,尼康D800一张RAW文件有40M左右,到时候迁移照片库和照片流希望不要掉坑里了。 等开发环境搞定再说了,更新OS X系统到10.9.4 ,然后安装最新的Xcode, 以及在商店买过的软件。确定系统无问题了,进入下一步...
Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站:
安装完成之后,建议执行一下自检,brew doctor如果看到Your system is ready to brew. 那么你的brew已经可以开始使用了。
ruby -e "$(curl -fsSL /mxcl/homebrew/go/install)"
brew doctor
常用命令: (所有软件以PHP5.5为例子)
brew update
#更新brew可安装包,建议每次执行一下
brew search php55
#搜索php5.5
brew tap josegonzalez/php
#安装扩展&gihhub_user/repo&
#查看安装的扩展列表
brew install php55
#安装php5.5
brew remove
#卸载php5.5
brew upgrade php55
#升级php5.5
brew options php55
#查看php5.5安装选项
#查看php5.5相关信息
#访问php5.5官方网站
brew services list
#查看系统通过 brew 安装的服务
brew services cleanup
#清除已卸载无用的启动配置文件
brew services restart php55
#重启php-fpm
注意:brew services 相关命令最好别经常用了,提示会被移除
brew services restart php55
Warning: brew services is unsupported and will be removed soon.
You should use launchctl instead.
Please feel free volunteer to support it in a tap.
Stopping `php55`... (might take a while)
==& Successfully stopped `php55` (label: homebrew.mxcl.php55)
==& Successfully started `php55` (label: homebrew.mxcl.php55)
ohmyzsh & iTerm2两个神器,在Mac os x下是一定要装的. 两组配合起来使用,加上插件。简直是神一样的存在。 秒杀梅西,内马尔啊:)
安装 oh my zsh
curl -L http://install.ohmyz.sh | sh
设置默认shell
查看系统支持的shell列表,Mac 10.9.4 自带了 zsh 5.0.2,Linux上得安装。
cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
zsh --version
zsh 5.0.2 (x86_64-apple-darwin13.0)
chsh -s /bin/zsh
虽然Mac自带了zsh,如果你想要最新版的zsh,那么你用 brew install zsh安装一个最新的吧。/usr/local/bin/zsh --version zsh 5.0.5 (x86_64-apple-darwin13.3.0)
区别也不会很大, 默认的版本已经很新了。
homebrew-cask
安装cask:
brew tap phinze/homebrew-cask && brew install brew-cask
cask常用命令:
brew cask search
#列出所有可以被安装的软件
brew cask search php
#查找所有和php相关的应用
brew cask list
#列出所有通过cask安装的软件
brew cask info phpstorm #查看 phpstorm 的信息
brew cask uninstall qq
这里谈谈cask对比Mac App Store的优势:
对常用软件支持更全面(特别是开发者),cask里面会给你一些惊喜;
软件更新速度快,一般都是最新版本 Store上很久很久才会更新版本;
命令安装感觉比打开Store方便,另外Store在国内的速度也是XXOO。
安装iTerm2:
brew cask install iterm2
上面提过的神器组合,更多使用方法请参考, 这里就不详细说明了。
安装开发常用的包&软件
安装开发包
brew install wget watch tmux cmake openssl imagemagick graphicsmagick gearman geoip readline autoconf multitail source-highlight autojump zsh-completions sshfs
升级一下系统自带的vimbrew install ctags macvim --env-std --override-system-vim
安装常用软件
brew cask install alfred appcleaner firefox google-chrome phpstorm sublime-text sequel-pro sketch mplayerx thunder qq
Alfred 是个很不错的东西,推荐必须安装。它默认搜索目录不包含brew cask安装的软件,因此手动将/opt/homebrew-cask添加到Alfred的搜索目录
MySQL PHP Nginx Redis Memcache
前面做了这么多的准备工作,其实 zsh
iTerm2 brew 等等这些由于篇幅以及能力有限,一时半会也讲不完,更多选择,更多欢乐,就在Google search,现在才入正题。come on :)
brew install mysql
MySQL开机启动:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
安装完成之后开启MySQL安全机制:
/usr/local/opt/mysql/bin/mysql_secure_installation
根据终端提示,输入root密码,然后依次确认一些安全选项。具体信息可以参考
#查看一下MySQL运行情况
ps aux | grep mysql
0:00.31 /usr/local/Cellar/mysql/5.6.19/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.19 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.19/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/CalvinsMacBook-Pro.local.err --pid-file=/usr/local/var/mysql/CalvinsMacBook-Pro.local.pid --socket=/tmp/mysql.sock --port=3306
0:00.04 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
#测试连接MySQL
mysql -uroot -p
Welcome to the MySQL monitor.
Your MySQL connection id is 23
Server version: 5.6.19-log Homebrew
Copyright (c) , Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Type '' or '\h' for help. Type '\c' to clear the current input statement.
安装phpmyadmin
brew install phpmyadmin
添加brew的PHP扩展库:
brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
可以使用brew options php55命令来查看安装php5.5的选项,这里我用下面的选项安装:
brew install php55 --with-fpm --with-gmp --with-imap --with-tidy --with-debug --with-mysql --with-libmysql
PHP编译过程中如果遇到configure: error: Cannot find OpenSSL's &evp.h&错误,执行xcode-select --install 重新安装一下Xcode Command Line Tools
在上有关于这个讨论:For future reference of anybody looking for Command Line Tools with Xcode 5, open up a Terminal window and type xcode-select --install. A window will appear informing you command line tools are required. Click Install and you should be good to go
等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中brew会自动安装依赖包,例如php55-pdo-pgsql 会自动装上postgresql,这里我安装以下PHP扩展:
brew install php55-apcu\
php55-gearman\
php55-geoip\
php55-gmagick\
php55-imagick\
php55-intl\
php55-mcrypt\
php55-memcache\
php55-memcached\
php55-mongo\
php55-opcache\
php55-pdo-pgsql\
php55-phalcon\
php55-redis\
php55-sphinx\
php55-swoole\
php55-uuid\
扩展里面提一下 和 . 一个是C语言写的PHP框架,安装来个人摸索熟悉一下,还没有真正的使用过,大致看了一下文档,感觉非常吊炸天。目前公司的项目是基于Yii2的,也看看这个框架。 另外一个,貌似不错,可能在项目中会考虑用到它。
由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本。
echo 'export PATH="$(brew --prefix php55)/bin:$PATH"' && ~/.bash_profile
echo 'export PATH="$(brew --prefix php55)/sbin:$PATH"' && ~/.bash_profile
#for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' && ~/.bash_profile #for other brew install soft
source ~/.bash_profile
测试一下效果:
#brew安装的php 他在/usr/local/opt/php55/bin/php
PHP 5.5.14 (cli) (built: Jul 16 :06) (DEBUG)
Copyright (c)
The PHP Group
Zend Engine v2.5.0, Copyright (c)
Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) , by Zend Technologies
with Xdebug v2.2.5, Copyright (c) , by Derick Rethans
#Mac自带的PHP
/usr/bin/php -v
PHP 5.4.24 (cli) (built: Jan 19 :15)
Copyright (c)
The PHP Group
Zend Engine v2.4.0, Copyright (c)
Zend Technologies
#brew安装的php-fpm 他在/usr/local/opt/php55/sbin/php-fpm
php-fpm -v
PHP 5.5.14 (fpm-fcgi) (built: Jul 16 :12) (DEBUG)
Copyright (c)
The PHP Group
Zend Engine v2.5.0, Copyright (c)
Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) , by Zend Technologies
with Xdebug v2.2.5, Copyright (c) , by Derick Rethans
#Mac自带的php-fpm
/usr/sbin/php-fpm -v
PHP 5.4.24 (fpm-fcgi) (built: Jan 19 :57)
Copyright (c)
The PHP Group
Zend Engine v2.4.0, Copyright (c)
Zend Technologies
修改php-fpm配置文件,vim /usr/local/etc/php/5.5/php-fpm.conf,找到pid相关大概在25行,去掉注释 pid = run/php-fpm.pid, 那么php-fpm的pid文件就会自动产生在/usr/local/var/run/php-fpm.pid,下面要安装的Nginx pid文件也放在这里。
#测试php-fpm配置
php-fpm -t
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -t
#启动php-fpm
php-fpm -D
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -D
#关闭php-fpm
kill -INT `cat /usr/local/var/run/php-fpm.pid`
#重启php-fpm
kill -USR2 `cat /usr/local/var/run/php-fpm.pid`
#也可以用上文提到的brew命令来重启php-fpm,不过他官方不推荐用这个命令了
brew services restart php55
#还可以用这个命令来启动php-fpm
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
启动php-fpm之后,确保它正常运行监听9000端口:
lsof -Pni4 | grep LISTEN | grep php
30907 calvin
IPv4 0xf11f9e8e
TCP 127.0.0.1:9000 (LISTEN)
30917 calvin
IPv4 0xf11f9e8e
TCP 127.0.0.1:9000 (LISTEN)
30918 calvin
IPv4 0xf11f9e8e
TCP 127.0.0.1:9000 (LISTEN)
30919 calvin
IPv4 0xf11f9e8e
TCP 127.0.0.1:9000 (LISTEN)
#正常情况,会看到上面这些进程
PHP-FPM开机启动:
ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
安装php composer
brew install composer
#检查一下情况
composer --version
Composer version 1.0.0-alpha8
redis memcached这些软件brew 已经自动依赖安装上,如果想开机自动启动,或者查看使用说明 brew info redis即可。另外,composer的中文文档:
brew install nginx --with-http_geoip_module
Nginx启动关闭命令:
#测试配置是否有语法错误
#打开 nginx
sudo nginx
#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
#也可以使用Mac的launchctl来启动|停止
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Nginx开机启动
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Nginx监听80端口需要root权限执行,因此:
sudo chown root:wheel /usr/local/Cellar/nginx/1.6.0_1/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.6.0_1/bin/nginx
配置nginx.conf
创建需要用到的目录:
mkdir -p /usr/local/var/logs/nginx
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
sudo mkdir -p /var/www
sudo chown :staff /var/www
sudo chmod 775 /var/www
vim /usr/local/etc/nginx/nginx.conf 输入以下内容:
worker_processes
/usr/local/var/logs/nginx/error.
/usr/local/var/run/nginx.
worker_connections
default_type
application/octet-
log_format
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log
/usr/local/var/logs/access.
keepalive_timeout
include /usr/local/etc/nginx/sites-enabled/*;
设置nginx php-fpm配置文件
vim /usr/local/etc/nginx/conf.d/php-fpm
#proxy the php scripts to php-fpm
location ~ \.php$ {
$uri = 404;
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
fastcgi_intercept_
include /usr/local/etc/nginx/fastcgi.
nginx虚拟主机准备工作
#创建 info.php index.html 404.html 403.html文件到 /var/www 下面
vi /var/www/info.php
vi /var/www/index.html
vi /var/www/403.html
vi /var/www/404.html
创建默认虚拟主机defaultvim /usr/local/etc/nginx/sites-available/default输入:
/var/www/;
access_log
/usr/local/var/logs/nginx/default.access.
location / {
index.html index.htm index.
/usr/local/etc/nginx/conf.d/php-
location = /info {
127.0.0.1;
rewrite (.*) /.info.
error_page
error_page
创建ssl默认虚拟主机default-sslvim /usr/local/etc/nginx/sites-available/default-ssl输入:
/var/www/;
access_log
/usr/local/var/logs/nginx/default-ssl.access.
ssl_certificate
ssl/localhost.
ssl_certificate_key
ssl/localhost.
ssl_session_timeout
ssl_protocols
SSLv2 SSLv3 TLSv1;
ssl_ciphers
HIGH:!aNULL:!MD5;
ssl_prefer_server_
location / {
/usr/local/etc/nginx/conf.d/php-
location = /info {
127.0.0.1;
rewrite (.*) /.info.
error_page
error_page
创建phpmyadmin虚拟主机
vim /usr/local/etc/nginx/sites-available/phpmyadmin #输入以下配置
/usr/local/share/
/usr/local/var/logs/nginx/phpmyadmin.error.
access_log
/usr/local/var/logs/nginx/phpmyadmin.access.
ssl_certificate
ssl/phpmyadmin.
ssl_certificate_key
ssl/phpmyadmin.
ssl_session_timeout
ssl_protocols
SSLv2 SSLv3 TLSv1;
ssl_ciphers
HIGH:!aNULL:!MD5;
ssl_prefer_server_
location / {
index.html index.htm index.
/usr/local/etc/nginx/conf.d/php-
mkdir -p /usr/local/etc/nginx/ssl
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt
创建虚拟主机软连接,开启虚拟主机
ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default
ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl
ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin
启动|停止Nginx
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
接下来你可以通过下面这些连接访问:
-& index.html
-& info.php via phpinfo();
-& 404.html
-& index.html(SSL)
-& info.php via phpinfo();(SSL)
-& 404.html(SSL)
-& phpmyadmin(SSL)
设置快捷服务控制命令
为了后面管理方便,将命令 alias 下,vim ~/.bash_aliases 输入一下内容:
alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
alias redis.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.restart='redis.stop && redis.start'
alias memcached.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.restart='memcached.stop && memcached.start'
#让快捷命令生效
echo "[[ -f ~/.bash_aliases ]] && . ~/.bash_aliases" && ~/.bash_profile
source ~/.bash_profile
#创建站点目录到主目录,方便快捷访问
ln -sfv /var/www ~/htdocs
有时间会进一步整理一下,感觉有点乱,第一次在segmentfault上码字,写到一半的时候不小心滑一下触摸板,浏览器后退了,虽然有提示不要离开,点击了不离开之后,Safari白屏。 然后还特地去, 害我白白又浪费很久来写这个博客。希望能帮助到刚刚接触Mac的同学。enjoy Mac‘s development EVN :)
参考资料:
不要错过 TA 的任何更新
如果这篇文章对你有帮助,记得点赞收藏哦,你的支持是我们的动力 ^___^
分享到微博?
举报理由:
带有人身攻击、辱骂、仇恨等违反条款的内容(请编辑该提问指向已有相同问题)
与已有问题重复
内容质量差,或不适合在本网站出现
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:}

我要回帖

更多关于 osx mysql 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信