转载自 http://www.jianshu.com/p/2402ae260cbc 转载请注明出处
一、安装
环境:OX EI Capitan,10.11
网上有无数教程,不加赘述,但有一坑:
-Mac安装Sql,会在安装时用一个小框提示初始密码。千万把这个密码拷贝下来,等下备用。
之后需要涉及登录等基础命令,请查看文末附录。
- Note 1:
不知道为什么,用 /usr/local/mysql/bin/mysql-u root -p 会提示找不到路径,但用以下命令可以解决:
echo $PATH
PATH="$PATH":/usr/local/mysql/bin
mysql -u root -p
- Note 2: 重设密码总遇见权限问题,试了以下方法,其中一种可以
UPDATEmysql.userSETPassword=PASSWORD(‘your-new-password’)WHEREUser='root';
SETPASSWORD=PASSWORD(‘your-new-password’);
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘your-new-password’);
二、配置图形界面
用的是SQuirrel SQL,官网上下dmg文件,要配置JDK文件,这些按部就班来就可以。但配置时仍有一坑,有一个Java文件是缺失的,文件名是这货:
mysql-connector-java-5.1.38-bin.jar
网上下载它,而后放到任意位置,之后要在配置时手动补充路径。
三、创建数据库和表
大同小异,copy一下我的命令,是在terminal敲的
mysql> CREATE DATABASE tian;
-> use tian;
-> CREATE TABLE nameTian (idnr VARCHAR(20),name VARCHAR(100),natacr VARCHAR(100),nat_prim_codeVARCHAR(10),sd_ticker VARCHAR(20),city VARCHAR(100),region VARCHAR(100),category VARCHAR(20),guoiso VARCHAR(5));
-> CREATE TABLE issuerTian (id INT,issuer1 VARCHAR(100),issuer2 VARCHAR(100),issuerParent1 VARCHAR(100),issuerParent2 VARCHAR(100));
(详情参见http://dev.mysql.com/doc/refman/5.7/en/creating-database.html)
四、在SQuirrel SQL中加载
点击左上方的Aliases,用户名root,密码,库的名字,而后打开。
五、中文显示问题
真是一把辛酸泪。用如下普通的导入命令,你会看到一堆乱码。
LOAD DATA LOCAL INFILE '/Users/Shared/Issuer_IssuerParent.csv' INTO TABLE issuerTian FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
(.csv 导入问题参见:http://www.mysqltutorial.org/import-csv-file-mysql-table/)
我也不知道utf-8是什么,但网上关于中文显示的解决方法都说要把系统编码指定为utf-8. 这个指定可以对系统、库、表格,甚至可以针对字段,大致命令是这样的:
ALTER TABLE issuerTian MODIFY issuerParent2 varchar(100) CHARACTER SET utf8
但是,试了之后还是乱码。不多说,开始讲解决方案。
- 1、用 .txt打开你的 .csv 文件,在保存时指定格式为utf-8,存成txt或者csv都可以;
- 2、把你的系统也用上面那个命令设成utf-8. 验证设置成功与否,可用语句,看看返回的结果(tiantian是我的库名,不要照抄呀);
mysql> show create database tiantian;
- 3、load命令也需要指明utf-8;
LOAD DATA LOCAL INFILE '/Users/Shared/Issuer_IssuerParent.txt' INTO TABLE issuerTian character set utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
- 4、见证奇迹的时刻到了,敲下面代码,点击奔跑的小人,中文有木有!(此处应有掌声)
select * from issuerTian
六、接下来就可以愉快地搞你的数据库了
比如这样,你就可以把两个字段里一样的保留下来;
select * from issuerTian4 where issuer1=ISSUERPARENT1;
再比如这样,这个就是跨表查询;
select * from issuerTian4 where issuerPARENT1 in (SELECT NAME FROM ISSUERTIAN5);
啊,喵,写完了。真是呕心沥血啊,啊,喵。
附录:
一、基础命令
- 启动mysql服务
1、如果你已经安装了MySQLStartupItem.pkg,重新启动电脑即可。
2、如果你有安装MySQLStartupItem.pkg或者不想启动电脑,运行:应用程序-实用工具-终端,在终端中输入命令:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
然后输入你的系统管理员密码即可。
- 关闭mysql服务
终端中输入命令:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
然后输入你的系统管理员密码即可。
你也可以去系统偏好设置-其他-MySQL,通过这个来启动和停止MySQL服务。
- 更改mysql root账户密码
终端中输入命令:
/usr/local/mysql/bin/mysqladmin -u root password
新密码
你可以随时使用这条命令更改你的密码。
- 终端登录mysql
方法1:绝对路径
终端中输入命令:/usr/local/mysql/bin/mysql-u root -p
提示:输入你的新密码 - 方法2:(推荐)添加PATH变量
查看路径中有没有需要的路径:
终端中输入命令:echo $PATH
没有,继续
添加需要路径:PATH="$PATH":/usr/local/mysql/bin
终端中需输入命令:mysql-u root -p
即可
如果想永久有效,将
export PATH="$PATH":/usr/local/mysql/bin
添加到 ~/.bashrc 的最后一行
二.创建用户 分配权限
grant all privileges on *.* to 'user'@'localhost' with grant option
grant all privileges on *.* to 'user'@'localhost' identified by '123456′;
flush privileges;
- 1.新建用户。
登录MYSQL
@>mysql -u root -p
@>密码
创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp密码为:1234的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功
- 2.为用户授权。
登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
刷新系统权限表
mysql>flush privileges;
mysql>其它操作
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
- 3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
- 4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges;