MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

以v5.6.36为例

配置

拷贝/usr/local/mysql/support-files/my-default.cnf文件,改名为my.cnf并放至/usr/local/mysql/文件夹下。

后续数据库的配置都可以在此文件中设置。

密码修改

Mac 安装完 MySQL 之后,软件会生成一个默认密码给我们。但是,当我使用Navicat来建立连接是却提示密码失效,无奈,只能修改数据库默认密码。

接下来,记录整个root密码修改过程。

在开始下面的步骤之前必须先停止mysql服务!

1, cd /usr/local/mysql/bin/
2, sudo su

跨过权限验证:

3, ./mysqld_safe --skip-grant-tables &

这时不要关窗口,再打开一个终端窗口。以root身份登录,因为第三步的原因不需要密码了。

4, ./mysql -uroot

4,sudo /usr/local/mysql/bin/mysql -u root
5, use mysql;
6, update user set authentication_string='123456' where User='root';
7, flush privileges;
8, exit;

网上流传的版本全部是set password =‘’ ,这样写一直报错说 ‘password’列不存在! 最终用sql命令查出来只有authentication_string字段,并没有password字段。

上一步执行之后本来以为已经可以登录了,可是navicat连接测试时出现了:

ERROR 1862 (HY000): Your password has expired. To log in you must
change it using a client that supports expired passwords.

所以还需要下面步骤

1, cd /usr/local/mysql/bin/
2, sudo su
3, ./mysql -uroot  -p123456
4, set password = password('123456')

用户名:root,密码:123456 修改成功

关闭或启动MySQL:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

打开MySQL数据库:

sudo /usr/local/mysql/bin/mysql -uroot  -p123456

Warning

可能在打开数据库时会出现下面错误提示:

Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决方案:

my.cnf配置文件中添加账户配置:

[client]
user = whatever #账户,一般配置root
password = whatever #账户密码
host = whatever #主机,可以为localhost

使用

为了方便使用,我们可以设置几个常用的命令。

# 启动MySQL
startmysql() {
	sudo /usr/local/mysql/support-files/mysql.server start
}

# 关闭MySQL
stopmysql() {
	sudo /usr/local/mysql/support-files/mysql.server stop
}

# 连接MySQL
openmysql() {
	sudo /usr/local/mysql/bin/mysql -u"$1"
}