1. 开启mysql
# /etc/init.d/mysqld start
2.关闭mysql
# /etc/init.d/mysqld stop //为了保证mysql的配置没有错,一定保证/etc/mysql/下没有默认安装路径的my.conf,不然编译安装的出错
3.登陆mysql数据库
# mysql -h[主机地址] -u[用户名] -p[用户密码]
注:如果用终端连接数据库,-p 密码需要提示输入,否则终端识别不了特殊符号
4.更改密码
# mysqladmin -u[用户名] -p[旧密码] password 新密码
# mysqladmin -u root password 'AB1MQpTKXaFdE0DS'
5.grant授权
grant * on 数据库.表名 to 用户名@用户地址 identified by “密码” //增加新用户
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接
grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利
mysql> grant select on testdb.* to common_user@'%' //@后不可有空格,单引号也不可省略
mysql> grant insert on testdb.* to common_user@'%'
mysql> grant update on testdb.* to common_user@'%'
mysql> grant delete on testdb.* to common_user@'%'
mysql> grant select,insert,update,delete on testdb.* to common_user@'%'
grant 创建、修改、删除 MySQL 数据表结构权限
mysql> grant create on testdb.* to developer@'192.168.0.%'
mysql> grant alter on testdb.* to developer@'192.168.0.%'
mysql> grant drop on testdb.* to developer@'192.168.0.%'
grant 操作 MySQL 外键权限
mysql> grant references on testdb.* to developer@'192.168.0.%'
grant 操作 MySQL 临时表权限
mysql> grant create temporary tables on testdb.* to developer@'192.168.0.%'
grant 操作 MySQL 索引权限
mysql> grant index on testdb.* to developer@'192.168.0.%'
grant 操作 MySQL 视图、查看视图源代码 权限
mysql> grant create view on testdb.* to developer@'192.168.0.%'
mysql> grant show view on testdb.* to developer@'192.168.0.%'
grant 操作 MySQL 存储过程、函数 权限
mysql> grant create routine on testdb.* to developer@'192.168.0.%'
mysql> grant alter routine on testdb.* to developer@'192.168.0.%'
mysql> grant execute on testdb.* to developer@'192.168.0.%'
grant 普通 DBA 管理某个 MySQL 数据库的权限
mysql> grant all privileges on testdb to dba@'localhost'
grant 高级 DBA 管理 MySQL 中所有数据库的权限
mysql> grant all on *.* to dba@'localhost'
6.mysql root密码
mysql> set password for 'root'@'localhost' = password('123456');
mysql> flush privileges; //修改生效
password:代表mysql加密函数
mysql> use mysql;
mysql> update user set password='' where user='root'; //密码清除
需要重启mysql
7.mysql远程连接工具
Navicat 可连接Oracle
MySQL-Front 界面友好
query browser 带SQL语句,可操作图片
8.远程连接授权
授权法:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
WITH GRANT OPTION:表示有授权的人
9.远程连接其他办法
# vi /etc/my.cnf
[mysqld]段加 skip-name-resolve
还有一种办法:
# vi /etc/hosts.allow
加上:(还未尝试)
mysqld : ALL : ALLOW
mysqld-max : ALL :ALLOW
实在不行:
# vi /etc/my.cnf
bind-address = 127.0.0.1 改成本机IP地址
10.数据库操作
- show databases; //列出数据库
- use database_name //使用database_name数据库
- create database data_name //创建名为data_name的数据库
- drop database data_name //删除一个名为data_name的数据库
11.表操作
- use 数据库名 //到达某一数据库
- show tables //列出所有表
- drop table tab_name 删除名为tab_name的数据表
- describe tab_name //显示名为tab_name的表的数据结构
- SQL插入语句:insert into table_name(col1,col2) values(value1,value2);
- SQL更新语句:update table_name set col1=’value1’,col2=’value2’ where where_definition;
- delete from tab_name //将表tab_name中的记录清空
- select * from tab_name //显示表tab_name中的记录
12.时间操作
NOW()函数以`’YYYY-MM-DD HH:MM:SS’返回当前的日期时间,可以直接存到DATETIME字段中。
CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
CURTIME()以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。
例:insert into tablename (fieldname) values (now())
13.修改表结构
- alter table tab_name add col_name varchar(20); //在tab_name表中增加一个名为col_name的字段且类型为varchar(20)
- alter table tab_name drop col_name //在tab_name中将col_name字段删除
- alter table tab_name modify col_name varchar(40) not null //修改字段属性,注若加上not null则要求原字段下没有数据
- 如何修改表名:alter table tab_name rename to new_tab_name
- 如何修改字段名:alter table tab_name change old_col new_col varchar(40); //必须为当前字段指定数据类型等属性,否则不能修改
- create table new_tab_name like old_tab_name //用一个已存在的表来建新表,但不包含旧表的数据
14.参考文档:
http://www.cnblogs.com/hcbin/archive/2010/04/23/1718379.html //Mysql grant