首次进入mac的mysql/bin中
设置密码:./mysqladmin -u root password "123"来给root用户设置一个密码;
修改密码:./mysqladmin -u root -p123456 password "your password"  注意:更改的密码不能用单引号,可用双引号或不用引号

启动mysql: 先执行mysql -u root -p 回车后,输入密码123即可进入


建立用户:
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
部分权限:grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>quit
然后就可以用test1来登录了,他具备所有操作phplampDB中表的权限。


察看当前登录数据库的用户列表
show full processlist;


mysql数据库,当安装好mysql后,会默认的建立一个库是mysql的库,这个库里面会有很多内置的表

+---------------------------+ 

 | Tables_in_mysql           | 

 +---------------------------+ 

 | columns_priv              | 

 | db                        | 

 | event                     | 

 | func                      | 

 | general_log               | 

 | help_category             | 

 | help_keyword              | 

 | help_relation             | 

 | help_topic                | 

 | host                      | 

 | ndb_binlog_index          | 

 | plugin                    | 

 | proc                      | 

 | procs_priv                | 

 | proxies_priv              | 

 | servers                   | 

 | slow_log                  | 

 | tables_priv               | 

 | time_zone                 | 

 | time_zone_leap_second     | 

 | time_zone_name            | 

 | time_zone_transition      | 

 | time_zone_transition_type | 

 | user                      | 

 +---------------------------+




比如操作mysql下面的user表中关键数据有:
mysql> select user, host from user;
+-------+-------------+
| user  | host        |
+-------+-------------+
| test1 | %           |
| root  | 127.0.0.1   |
| root  | ::1         |
|       | apple.local |
| root  | apple.local |
|       | localhost   |
| root  | localhost   |
| test1 | localhost   |
+-------+-------------+
8 rows in set (0.00 sec)


删除一个用户:(这里必须先进入mysql数据库)
@>mysql -u root -p
@>密码
use mysql
mysql>Delete FROM user Where User="phplamp" and Host="localhost";
mysql>flush privileges;




删除用户的数据库:
mysql>drop database phplampDB;




察看某个用户的权限:
show grants for webgametest@10.3.18.158; 


察看创建数据库时候的一些参数
show create database dbname;  


察看创建表时的一些参数
show create table db.table_name




grant的基本用法
mysql> GRANT <privileges> ON <what> 
-> TO <user> [IDENTIFIED BY "<password>"] 
-> [WITH GRANT OPTION]; 
<privileges>是一个用 逗号 分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:
1. 数据库/数据表/数据列权限: 
Alter: 修改已存在的数据表(例如增加/删除列)和索引。 
Create: 建立新的数据库或数据表。 
Delete: 删除表的记录。 
Drop: 删除数据表或数据库。 
INDEX: 建立或删除索引。 
Insert: 增加表的记录。 
Select: 显示/搜索表的记录。 
Update: 修改表中已存在的记录。 
2. 全局管理权限:
file: 在MySQL服务器上读写文件。 
PROCESS: 显示或杀死属于其它用户的服务线程。 
RELOAD: 重载访问控制表,刷新日志等。 
SHUTDOWN: 关闭MySQL服务。 
3. 特别的权限
ALL: 允许做任何事(和root一样)。 
USAGE: 只允许登录--其它什么也不允许做。 ??






常用命令:
show databases;


use mysql


create database tt;


update user set password=password("123") where user="root";


show tables;


describe table_name;


select now(),sysdate(),curdate(),curtime(),unix_timestamp()




LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;


建立索引:
CREATE [UNIQUE] INDEX <index_name> ON <table_name>(字段 [ASC|DESC]);


UNIQUE --确保所有的索引列中的值都是可以区分的。
[ASC|DESC] --在列上按指定排序创建索引。


(创建索引的准则:
1.如果表里有几百行记录则可以对其创建索引(表里的记录行数越多索引的效果就越明显)。
2.不要试图对表创建两个或三个以上的索引。
3.为频繁使用的行创建索引。



给表改名:
RENAME TABLE ztemp TO ztemp4;


修改字段属性:
ALTER TABLE bbabase CHANGE news_id id VARCHAR(5) NOT NULL;


在表中的content后增加一字段:
ALTER TABLE bbabase ADD leave_time DATETIME NOT NULL AFTER content;






常见问题:
忘记root密码怎么办?    
在启动Mysql服务器时加上参数--skip-grant-tables来跳过授权表的验证    (./safe_mysqld --skip-grant-tables &),
这样我们就可以直接登陆Mysql服务器,然后再修改root用户的口令,重启Mysql就可以用新口令登陆了。




解决mysql不用用户名和密码可以直接登陆的问题:
mysql>use mysql;
mysql>delete from user where user='';
mysql>flush privileges; (必须的)




在服务器上运行MySQL的时候,为了安全起见,尽量不要给user表里面的host字段赋予%权限.
保证以上几点没有问题的情况下,这个错误基本可以避免




另外如果用户不能进入mysql系统,可以用这种方法进入:
如果 MySQL 正在运行,首先停止。
启动 MySQL :bin/safe_mysqld --skip-grant-tables & 
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;