1、官网下载mysql安装包安装
2、安装完毕后,在终端输入
@> mysql --version
显示如下版本信息说明正常:
mysql> mysql Ver 14.14 Distrib 5.6.33, for osx10.11 (x86_64) using EditLine wrapper
若显示command not found,在终端输入如下,”/usr/local/mysql/bin/mysql”为mysql默认安装路径:
mysql> cd /usr/local/bin/
mysql> sudo ln -fs /usr/local/mysql/bin/mysql mysql
sudo /usr/local/mysql/support-files/mysql.server start //启动
sudo /usr/local/mysql/support-files/mysql.server restart //重启
sudo /usr/local/mysql/support-files/mysql.server stop //停止
还是比较麻烦,可以简化一下:在~/.bash_aliases中添加这样的命令:
alias mysqlstart='sudo /usr/local/mysql/support-files/mysql.server start'
alias mysqlstop='sudo /usr/local/mysql/support-files/mysql.server stop'
如果没有.bash_aliases文件,可以创建一个,并在.bash_profile文件的最后加上这样的代码:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
更新用户密码:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
三、用户授权
//登录mysql
mysql>mysql -u root -p
mysql>密码
//首先为用户创建一个数据库(emaoDB)
mysql>create database emaoDB;
//授权cplusplus用户拥有cplusplusDB数据库的所有权限。
mysql> grant all privileges on emaoDB.* to test1@localhost identified
by '123456';
//刷新系统
mysql> flush privileges;
mysql>
四、部分授权
mysql> grant select,update on emaoDB.* to test1@localhost
identified by '123456';
//刷新系统权限表。
mysql>flush privileges;
五、删除用户
mysql>mysql -u root -p
mysql>密码
mysql>DELETE FROM user WHERE User=”cplusplus” and Host=”localhost”;
mysql>flush privileges;
六、删除数据库
mysql>drop database cplusplusDB;
七、修改密码
mysql>mysql -u root -p
mysql>密码
mysql>update mysql.user set password=password(‘新密码’) where
User=”cplusplus” and Host=”localhost”;
mysql>flush privileges;
插入用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","test1",password("123456"));
但在执行时报如下错误:
ERROR 1364 (HY000): Field ‘ssl_cipher’ doesn’t have a default value
原因:在我的配置文件my.cnf中有这样一条语句
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
指定了严格模式,为了安全,严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户
解决办法:
cd /usr/local/mysql/
vim my.cnf
//保存只读文档
:w !sudo tee %
更多vim命令:
查看http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html
将配置文件中的STRICT_TRANS_TABLES删掉,即改为:
sql_mode=NO_ENGINE_SUBSTITUTION
然后重启mysql即可
查询用户表
select * from mysql.user;
//或
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;