数据库相关

正文

1 安装与初始化

1.在mac上安装与初始化mysql密码
参考:http://www.jb51.net/article/103841.htm
安装完成后位置:/usr/local/mysql

2.我的mysql是很早之前装的,导致现在找不到密码,还好有解决方案:
思路是关闭mysql跳过验证修改密码。

我的版本是5.7的,执行以下步骤:
1) 在系统偏好 中,中止MySQL服务.;
2)cd /usr/local/mysql/bin
3) sudo ./mysqld_safe --skip-grant-tables
当你执行skip-grant-tables跳过验证权限的时候终端好像卡住了,出现以下情况:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1RNNplPl-1657609572748)(https://img-blog.youkuaiyun.com/20170417190636343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2thZTg2NDMxNTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

这时候只要再打开一个终端,就可以进入了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyK1bIZy-1657609572749)(https://img-blog.youkuaiyun.com/20170417190801421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2thZTg2NDMxNTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

4)然后修改用户密码

mysql> update mysql.user set password='root' where User='root';

结果报错,没有password这个字段.

囧,进去看看,有哪些字段

mysql> select * from mysql.user;

结果发现真木有,其中authentication_string据说是5.7.6以后的密码字段,于是改为:

mysql> update mysql.user set authentication_string='root' where User='root';

显示Query ok,修改成功

5)刷新权限
flush privileges;
quit退出mysql后再启动 mysql,为了防止没有重启到,先stop再start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

使用新密码登录: mysql -u root -p ,登录ok

6)如果重新启动mysql后发现无效,说明刚才设置密码出了点点状况,请参考http://www.cnblogs.com/Gbeniot/p/5156633.html,根据你的mysql版本做调整。

//第4步的修改密码改为:
update mysql.User set authentication_string=password('root') where user='root' and Host ='localhost';
//重新进入的时候操作数据库会提示
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
//这时候执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password AS 'root';

2 相关规则

3.成功安装mysql后,就是来使用了,掌握sql语言的四种类别的语言,初期基本就够用了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWdTWg9A-1657609572749)(https://img-blog.youkuaiyun.com/20170418103844534?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2thZTg2NDMxNTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
这里有个哥们汇总的很好,可以参考这个:
http://www.cnblogs.com/hoobey/p/5427020.html

4.要开始建立自己的数据库了,遵守一定的命名规范:
http://blog.youkuaiyun.com/u013628152/article/details/43229155

5.在添加外键的时候遇到一个问题,报错:ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails。后来发现原因是外键对应的数据不符。比如A表如下:
id,name,job_id
1 ‘hello’ 1
2 ‘hehe’ 0

B表如下:
jid,job
1 ‘worker’
2 ‘teacher’

此时向A添加外键:alter table A add constraint fk_job foreign key(job_id) references B(jid);
执行会报该类错误。A表中第二条记录,job_id=0在B表中并不存在,无法指向,所以添加外键失败。

6.各种join的用法,清晰明了
http://www.cnblogs.com/sunjie9606/p/4167190.html

3 实操技巧

# 查询一个Paragraph相关的QA有多少个
SELECT Paragraph.ID,count(QA.ID) from Paragraph left join QA on Paragraph.ID=QA.PARAGRAPH_ID group by Paragraph.ID
# 查询上一句中的最小值
SELECT Paragraph_id,min(cnt) from (SELECT Paragraph.ID as Paragraph_id,count(QA.ID) as cnt from Paragraph left join QA on Paragraph.ID=QA.PARAGRAPH_ID group by Paragraph.ID)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值