本文转载自:http://blog.csdn.net/lllxy/article/details/1712936(有改动)
1. 停止mysql服务的几种方法     
     1): $:>/usr/local/mysql/bin/mysqladmin -u root -p shutdown     
     2): $:>/usr/local/mysql/support-files/mysql.server stop     
     3): 也可以先通过ps -ef 查找出mysql的进程ID,通过kill -9 (id)来停止进程     
2. 启动mysql也还可以通过如下方式来启动     
         $:>/usr/local/mysql/support-files/mysql.server start     
3. mysqladmin还可以用来修改密码      
    格式: mysqladmin -u用户名 -p旧密码 password 新密码     
(特别注意: password前面没有横杠,-p和旧密码之间不要有空格)     
     #给root加个密码123,由于开始root没有密码,所以-p 旧密码可以省略。     
     $:>/usr/local/mysql/bin/mysqladmin -u root password 123     
4.MySql中的用户授权     
    当我们在使用MySql的时候,都必须有一个数据库MySql用来管理权限,这个数据库最好只让root用户可以看见, 其他的用户都不可见。     
    MYSQL环境中的命令,所以后面都带一个分号作为命令结束符。     
    1) grant格式:     
       grant <privileges> on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’with          grant   option
<privileges>代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file 等14个权限。
      当<privileges>被all privileges或者all代替,表示赋予用户全部权限   当<privileges>被usage代替时,只允许登陆,其他什么都不允许做    
     当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。     
     用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。     
     ‘连接口令’可以为空
如果在命令后面带上: WITH GRANT OPTION,表示该用户有向其他用户传递其所具有的权利的权限
     mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by   ‘123′;     
     给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设  定口令为123。
     mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;     
     给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
     mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;     
     给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
     mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;     
     给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
     你想myuser使用mypassword从任何主机连接到mysql服务器的话。    
     GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
     你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码    
     GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3′ IDENTIFIED BY ‘mypassword’
     增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:    
     grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost
  指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。    
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";     
    如果你不想test2有密码,可以再打一个命令将密码消掉。     
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
  建立一个名为test的用户,他可以使用口令sa从localhost连接MySQL,并仅仅可以访问名为MyDB的数据库的全部 内容(并可以将此权限赋予其他用户),这可以使用下面的GRANT命令:  
mysql> GRANT ALL ON MyDB.* TO test@localhost  IDENTIFIED BY "sa"  WITH GRANT OPTION;  
  现在改变这个用户的口令为123,命令格式如下:     
  mysql> GRANT USAGE ON *.* TO test@local IDENTIFIED BY "123";  
  我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。
   2) 直接通过insert函数往mysql数据库的user表中加入一条记录。    
     增加一个用户,用户名为jeffrey,密码为biscuit。     
     mysql> Insert INTO mysql.user (Host,User,Password)     
     VALUES(‘%’,’jeffrey’,PASSWORD(‘biscuit’));     
      mysql> FLUSH PRIVILEGES     
     修改root用户的登陆方式     
     mysql>update user set host = ‘%’  where user =’root’;     
     mysql>flush privileges;     
5. 显示命令     
    show databases;   //显示数据库     
    use mysql     
    show tables;   //显示mysql数据库中的表     
    describe user;  //显示mysql数据库中user表的结构.
6. MySQL 忘记口令的解决办法
    如果 MySQL 正在运行,首先杀之    
    启动 MySQL,就可以不需要密码就进入 MySQL 了。     
    $:> /usr/local/mysql/bin/safe_mysqld –skip-grant-tables & ;     
    $:> mysql -u root -p     
    Enter password:[直接回车]     
    mysql>use mysql     
    mysql>update user set password=password("sa") where user="root";     
    mysql>flush privileges;     
    mysql>exit;     
    重新杀 MySQL ,用正常方法启动mysql使用密码sa就可以登陆。