共计 1752 个字符,预计需要花费 5 分钟才能阅读完成。
写在前面
MySQL 是个神奇的关系型数据库,真心感觉牛逼,因为做的项目比较杂,之前也碰到过 Oracle 数据库,给我的印象是 Oracle 很臃肿繁琐,配置多,如果是小项目用它的话感觉就像是杀鸡用牛刀,大材小用。但是也不是说 Mysql 不能用于大项目,MySQL 开元免费,是现在关系型数据库的主流产品,网上相应的文档和问题解决方案也会很多,意思就是比如菜鸟如我碰到了 Mysql 出的问题,网上基本上很全。
系统环境 Debain 7Mysql 5.6
1.MySQL 简单操作命令
//1. 登录 mysql,括号中的为可选项,$(包括 $)后面为实际数据,- D 是指定数据库登录
mysql (-h$host) (-P$port) -u$user -p$pwd (-D$dbname) // 地址 端口 账号 密码 数据库名
//2. 删除、创建数据库
drop database dbname; // 删除数据库
create database dbname charset utf8 // 创建数据库
//3. 删除、创建数据库表
drop table tablename;// 删除表
create table tablename(id int, name varchar(80)); // 创建表
//4. 表操作
show triggers\g / show triggers; // 查看触发器
show variables like ‘character_set_database’; // 查看库编码
desc tablename; // 查看表结构
select current_date(); // 查看表创建时间
//5. 导入 sql 文件
use dbname;source /dbname.sql; // 执行 sql 文件
//6. 当前的连接情况
select current_user(); // 查看当前登录账号
show processlist; // 查看当前进程
show full processlist;// 查看当前全部进程
select user,host,Super_priv from mysql.user; // 查看所有可连接用户、地址和权限信息
(Super_priv 用户有 super 权限才可以导入数据)
grant all privileges on *.* to root@’%’ identified by ‘root’ with grant option;flush privileges; // 给 root 用户远程登录的所有权限
2. 自动导入 sql 文件
2.1 shell 操作
#创建 createDb.sh,内容如下:
#!/bin/bash
#通过 shell 自动初始化数据库和表结构
host=$1 #地址
port=$2 #端口
user=$3 #账号
pwd=$4 #密码
dbname=$5 #数据库名
path=$6 #sql 文件路径
mysql -h$host -P$port -u$user -p$pwd <<EOF
drop database if exists $dbname;create database $dbname charset utf8;
use $dbname;
source $path
COMMIT;
EOF
# 查看 shell 的执行过程命令
sh -x ./shell // 查看 shell 执行过程
2.2 expect 操作
#!/usr/bin/expect -f
set timeout 10
set host [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set pwd [lindex $argv 3]
set dbname [lindex $argv 4]
set path [lindex $argv 5]
set cset [lindex $argv 6] #字符编码
spawn mysql -h$host -P$port -u$user -p
expect “Enter password: ”
send “$pwd\r”
expect “mysql> ”
send “drop database if exists $dbname;create database $dbname charset $cset;\r”
expect “mysql> ”
send “use $dbname;\r”
expect “mysql> ”
send “source $path;\r”
expect “mysql> ”
send “exit\r”
interact
回头研究再更新操作,有哪里写的不对的也请不吝赐教