【无标题】

一、MySQL安装

到MySQL官网上http://dev.mysql.com/download...,下载mysql可安装dmg版本

比如:Mac OS X ver. 10.9 (x86, 64-bit), DMG Archive

下载完的文件为:mysql-5.6.24-osx10.9-x86_64.dmg

点击安装包一步步傻瓜式安装就行。

系统偏好设置的其他里,点击"mysql"的图标

点击Start MySQL Server按钮,启动mysql

二、打开终端,定义MySQL别名

输入 alias 命令

alias mysql=/usr/local/mysql/bin/mysql

回车,在输入

alias mysqladmin=/usr/local/mysql/bin/mysqladmin

三、设置mysql root账号的密码

mysqladmin -u root password *(#初始密码)

// 如果设置完成后,需要修改,执行命令

mysqladmin -u root -p password new*(#最新密码)

接着会提示输入密码,此时输入旧密码,回车

四、连接数据库

mysql -u root -p

然后提示输入密码,输入三中设置的密码

如果是登录远程主机上的mysql数据库

mysql -h 主机地址 -u 用户名 -p 用户密码

五、执行常用的mysql数据库操作

注意:以下操作都是在连接数据库之后,进入mysql环境,之后执行的命令都必需带有分号";"

1.新增用户 授权

格式如下: grant 操作权限 on 数据库.* to test1@"%" identified by "abc";

意思是: 授予,某主机上的某用户(附带该用户的登录密码)在某数据库上,执行某些操作的权限

(1)比如:任意主机上("%"),用户(用户名:test1,密码:adc)在所有数据库上,执行任意操作的权限(危险哦)

grant all privileges on . to test1@"%" identified by "abc";

其中 all privileges 表示查询、插入、修改、删除的权限:select、insert、update、delete

以上命令等价于:

grant select,insert,update,delete on . to test1@"%" identified by "abc";

然后刷新权限

flush privileges;

(2)比如:授权本地主机上的用户操作数据库的权限

创建数据库(比如:openfire)

create database openfire;

授予本地主机用户 (用户名:test1,密码:test1)访问数据库(数据库名称:openfire)的操作权限

grant all privileges on openfire.* test1@localhost identified by "test1";

flush privileges;

现在,就可以用新的用户,访问openfire数据库了。

2.更新指定账户的密码(用户名:test1,新密码:1234)

update mysql.user set password=password('1234') where User="test1" and Host="localhost";

3.删除用户

先使用mysql数据库

use mysql;

删除mysql数据库中user表中的某个本地用户(test7)

delete from user where User="test7" and Host="localhost";

4.显示命令

(1)显示所有数据库列表

show databases;

初始化只有两个数据库,mysql 和 test

注意:Mysql的系统信息都存储在mysql库中,比如:修改密码和新增用户,实际就是在这个库进行

(2)打开某个数据库(比如数据库:openfire);

use openfire;

(3)显示本库中的所有表

show tables;

(4)显示某表的结构

describe table1;

(5)建库

create database 库名;

(6)建表

use 库名;

create table 表名 (字段设定列表);

(7)删库

drop database 库名;

(8)删表

drop table 表名;

(9)将表中的记录清空

delete from 表名;

(10)显示表中的记录

select * from 表名;

六、退出mysql

exit

七、启动和停止mysql

启动

/usr/local/mysql/share/mysql.server start

停止

/usr/local/mysql/bin/mysqladmin -u root -p shutdown

输入root密码

附:

一、MySQL处理数据库和表的常用命令

处理数据库

查看数据库

获取服务器上的数据库列表通常很有用。执行show databases;命令就可以搞定。

mysql> show databases;

创建数据库

mysql> create database db_test;

Query OK, 1 row affected (0.00 sec)

使用数据库

数据库一旦创建,就可以通过"使用"(use命令)数据库,将其指定为默认的工作数据库。

mysql> use db_test;

Database changed

删除数据库

删除数据库的方式与创建的方式很相似。可以在mysql客户端中使用drop命令删除数据库,如下:

mysql> drop database db_test;

Query OK, 0 rows affected (0.00 sec)

处理表

这里将对如何创建、列出、查看、删除和修改MySQL数据库表。

创建表

表通过create table语句来创建。创建表的过程中会使用非常多的选项和子句,在这里完全总结一遍也是不现实的,这里只是总结最普遍的,以后遇到别的,再单个总结。创建表的一般用法如下:

mysql> create table tb_test(

-> id int unsigned not null auto_increment,

-> firstname varchar(25) not null,

-> lastname varchar(25) not null,

-> email varchar(45) not null,

-> phone varchar(10) not null,

-> primary key(id));

Query OK, 0 rows affected (0.03 sec)

记住,表至少包含一列。另外,创建表之后总是可以再回过头来修改表的结构。无论当前是否在使用目标数据库,都可以创建表,只要在表名前面加上目标数据库即可。例如:

mysql> create table db_test.tb_test(

-> id int unsigned not null auto_increment,

-> firstname varchar(25) not null,

-> lastname varchar(25) not null,

-> email varchar(45) not null,

-> phone varchar(10) not null,

-> primary key(id));

Query OK, 0 rows affected (0.03 sec)

有条件的创建表

在默认情况下,如果试图创建一个已经存在的表,MySQL会产生一个错误。为了避免这个错误,create table语句提供了一个子句,如果你希望在目标表已经存在的情况下简单地退出表创建,就可以使用这个子句。例如:

mysql> create table if not exists db_test.tb_test(

-> id int unsigned not null auto_increment,

-> firstname varchar(25) not null,

-> lastname varchar(25) not null,

-> email varchar(45) not null,

-> phone varchar(10) not null,

-> primary key(id));

Query OK, 0 rows affected, 1 warning (0.00 sec)

无论是否已经创建,都会在返回到命令提示窗口时显示"Query OK"消息。

复制表

基于现有的表创建新表是一项很容易的任务。以下代码将得到tb_test表的一个副本,名为tb_test2:

mysql> create table tb_test2 select * from db_test.tb_test;

Query OK, 0 rows affected (0.03 sec)

Records: 0 Duplicates: 0 Warnings: 0

将向数据库增加一个相同的表tb_test2。而有的时候,可能希望只基于现有表的几个列创建一个表。通过create select语句中指定列就可以实现:

mysql> describe tb_test;

Field Type Null Key Default Extra

id int(10) unsigned NO PRI NULL auto_increment

firstname varchar(25) NO NULL

lastname varchar(25) NO NULL

email varchar(45) NO NULL

phone varchar(10) NO NULL

5 rows in set (0.01 sec)

mysql> create table tb_test2 select id, firstname, lastname, email from tb_test;

Query OK, 0 rows affected (0.03 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> describe tb_test2;

Field Type Null Key Default Extra

id int(10) unsigned NO 0

firstname varchar(25) NO NULL

lastname varchar(25) NO NULL

email varchar(45) NO NULL

4 rows in set (0.01 sec)

创建临时表

有的时候,当工作在非常大的表上时,可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录保存到一个临时表可能更快一些,然后对这些临时表进行查询操作。可以通过使用temporary关键字和create table语句来实现。

mysql> create temporary table emp_temp select firstname, lastname from tb_test;

Query OK, 0 rows affected (0.02 sec)

Records: 0 Duplicates: 0 Warnings: 0

临时表的创建与其它表一样,只是它们存储在操作系统指定的临时目录中。临时表将在你连接MySQL期间存在,当你断开时,MySQL将自动删除表并释放所有的内存空间;当然了,你也可以手动的使用drop table命令删除临时表。

查看数据库中可用的表

可以使用show tables命令完成。例如:

mysql> show tables;

Tables_in_db_test

tb_test

tb_test2

2 rows in set (0.00 sec)

查看表结构

可以使用describe语句查看表结构,例如:

mysql> describe tb_test;

Field Type Null Key Default Extra

id int(10) unsigned NO PRI NULL auto_increment

firstname varchar(25) NO NULL

lastname varchar(25) NO NULL

email varchar(45) NO NULL

phone varchar(10) NO NULL

5 rows in set (0.00 sec)

另外,使用show命令也能得到相同的结果,例如:

mysql> show columns in tb_test;

Field Type Null Key Default Extra

id int(10) unsigned NO PRI NULL auto_increment

firstname varchar(25) NO NULL

lastname varchar(25) NO NULL

email varchar(45) NO NULL

phone varchar(10) NO NULL

5 rows in set (0.00 sec)

删除表

删除表是使用drop table语句实现的,其语法如下:

drop [temporary] table [if exists] tbl_name [, tbl_name, ...]

更改表结构

我们会发现,我们会经常修改和改进表结构,特别是在开发初期;但是,每次进行修改时不必都先删除再重新创建表。相反,可以使用alter语句修改表的结构。利用这个语句,可以再必要时删除、修改和增加列。和create table一样,alter table提供了很多子句、关键字和选项。这里只是会说一些简单的使用,比如在表tb_demo表中插入一列,表示email,代码如下:

mysql> alter table tb_demo add column email varchar(45);

Query OK, 0 rows affected (0.14 sec)

Records: 0 Duplicates: 0 Warnings: 0

新的列放在表的最后位置。不过,还可以使用适当的关键字(包括first、after和last)来控制新列的位置。如果想修改表,比如,刚刚加的email,我想加入一个not null控制,代码可以是这样的:

mysql> alter table tb_demo change email email varchar(45) not null;

Query OK, 0 rows affected (0.11 sec)

Records: 0 Duplicates: 0 Warnings: 0

如果觉的这个email这列没有存在的必要了,可以使用下面的代码删除它,例如:

mysql> alter table tb_demo drop email;

Query OK, 0 rows affected (0.09 sec)

Records: 0 Duplicates: 0 Warnings: 0

二、常用命令汇总:

连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样)

断开:exit (回车)

创建授权:grant select on 数据库.* to 用户名@登录主机 identified by /"密码/"

修改密码:mysqladmin -u用户名 -p旧密码 password 新密码

删除授权: revoke select,insert,update,delete om . from test2@localhost ;

显示数据库:show databases;

显示数据表:show tables;

显示表结构:describe 表名;

创建库:create database 库名;

删除库:drop database 库名;

使用库:use 库名;

创建表:create table 表名 (字段设定列表);

删除表:drop table 表名;

修改表:alter table t1 rename t2

查询表:select * from 表名;

清空表:delete from 表名;

备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql

恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除)

增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX ©;

修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

删除列:ALTER TABLE t2 DROP COLUMN c;

备份数据库:mysql/bin/mysqldump -h(ip) -uroot -p(password) databasename > database.sql

恢复数据库:mysql/bin/mysql -h(ip) -uroot -p(password) databasename < database.sql

复制数据库:mysql/bin/mysqldump --all-databases > all-databases.sql

修复数据库:mysqlcheck -A -o -uroot -p54safer

文本数据导入:load data local infile /"文件名/" into table 表名;

数据导入导出:mysql/bin/mysqlimport database tables.txt

三、权限说明

全局管理权限:

FILE: 在MySQL服务器上读写文件。

PROCESS: 显示或杀死属于其它用户的服务线程。

RELOAD: 重载访问控制表,刷新日志等。

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限:

ALTER: 修改已存在的数据表(例如增加/删除列)和索引。

CREATE: 建立新的数据库或数据表。

DELETE: 删除表的记录。

DROP: 删除数据表或数据库。

INDEX: 建立或删除索引。

INSERT: 增加表的记录。

SELECT: 显示/搜索表的记录。

UPDATE: 修改表中已存在的记录。

特别的权限:

ALL: 允许做任何事(和root一样)。

USAGE: 只允许登录--其它什么也不允许做。

相关推荐
-XWB-8 分钟前
【MySQL】数据目录迁移
数据库·mysql
老华带你飞14 分钟前
公寓管理系统|SprinBoot+vue夕阳红公寓管理系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·课程设计
我明天再来学Web渗透25 分钟前
【hot100-java】【二叉树的层序遍历】
java·开发语言·数据库·sql·算法·排序算法
Data 31730 分钟前
Hive数仓操作(十一)
大数据·数据库·数据仓库·hive·hadoop
吱吱鼠叔1 小时前
MATLAB数据文件读写:2.矩阵数据读取
数据库·matlab·矩阵
掘根1 小时前
【MySQL】Ubuntu环境下MySQL的安装与卸载
数据库·mysql·centos
知识分享小能手2 小时前
mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)
大数据·开发语言·数据库·sql·学习·mysql·数据分析
暮毅2 小时前
Django对接支付宝沙箱环境(2024年9月新测有效)
数据库·django
fat house cat_2 小时前
mysql-索引笔记
数据库·mysql