参考
http://www.runoob.com/mysql/mysql-install.html
http://blog.csdn.net/u010281209/article/details/53965409
1-安装
mac-mysql下载地址:http://dev.mysql.com/downloads/mysql/
密码要记下来,没有记录的话,可以在系统“通知”里面找到。
默认安装在/usr/local/mysql中
修改环境变量
vi ~/.bash_profile
export PATH=${PATH}:/usr/local/mysql/bin
source ~/.bash_profile
系统偏好设置中启动mysql
或者通过命令启动
mysqld_safe &
修改密码为root:mysqladmin -u root -p password "root"
测试登录:mysql -u root -p
关闭mysql
mysqladmin -u root -p shutdown Enter password: ******或者在 系统偏好设置中关闭
2-解决中文乱码
修改mysql编码为utf-8,解决中文乱码问题
默认的字符设置为:
(1)通过修改临时的编码解决(治标不治本的办法):http://www.cnblogs.com/mojita/p/5347614.html
设置上面的集中编码格式
一个一个设置
set character_set_client=utf8;
就是上面这个命令,把character_set_client这个换成想要更改的就好了。
简单介绍下:
character_set_client:客户端字符集
character_set_connection:链接字符集
character_set_database:数据库字符集
character_set_filesystem:文件系统
character_set_results:结果字符集
character_set_server:服务器字符集
character_set_system:mysql系统字符集
如果上面这种办法麻烦,可以使用
set names utf8;
这个命令同时将客户端字符集,链接字符集,结果字符集设置成utf8的字符编码。
但是上面这种办法当mysql下次登录的时候还会变成原来的默认设置,只是暂时的改变当前的字符编码!
(2)设置mysql配置文件永久生效
/etc目录下自己建了一个my.cnf文件(需要最高权限,使用sudo su),然后写入内容:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
保存,修改。关掉重启mysql
重新查看字符集:show variables like '%char%';
3-基本应用
http://www.runoob.com/mysql/mysql-administration.html
默认的数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
创建数据库
mysql> create database dbtest_1;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dbtest_1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
使用数据库
mysql> use dbtest_1
Database changed
mysql> show tables;
Empty set (0.00 sec)
建表
mysql> CREATE TABLE IF NOT EXISTS `tb_test_1`(
-> `city_id` VARCHAR(10) default '',
-> `city_name` VARCHAR(100) default '',
-> PRIMARY KEY ( `city_id` )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
展示表
mysql> show tables;
+--------------------+
| Tables_in_dbtest_1 |
+--------------------+
| tb_test_1 |
+--------------------+
1 row in set (0.00 sec)
插入数据
mysql> insert into tb_test_1 (`city_id`,`city_name`)
-> values
-> ('110100','北京'),
-> ('120100','天津'),
-> ('130101','石家庄'),
-> ('130201','唐山'),
-> ('130301','秦皇岛'),
-> ('130701','张家口'),
-> ('130801','承德'),
-> ('131001','廊坊');
Query OK, 8 rows affected (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
查看数据表内容
mysql> select * from tb_test_1;
+---------+-----------+
| city_id | city_name |
+---------+-----------+
| 110100 | 北京 |
| 120100 | 天津 |
| 130101 | 石家庄 |
| 130201 | 唐山 |
| 130301 | 秦皇岛 |
| 130701 | 张家口 |
| 130801 | 承德 |
| 131001 | 廊坊 |
+---------+-----------+
8 rows in set (0.00 sec)
4-JDBC访问操作
import java.sql.*;
/**
* 参考:https://www.cnblogs.com/taoweiji/archive/2012/12/11/2812852.html
*/
public class MainApp {
public static void main(String[] args) throws SQLException {
Connection conn = null;
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建dbtest_1数据库
String url = "jdbc:mysql://localhost:3306/dbtest_1?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
try {
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
//Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
// or:
com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
// or:
// new com.mysql.jdbc.Driver();
System.out.println("成功加载MySQL驱动程序");
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
String sql = "select * from tb_test_1";
ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("城市id\t城市名称");
while (rs.next()) {
// 如果返回的是int类型可以用getInt()
System.out.println(rs.getString(1) + "\t" + rs.getString(2));
}
} catch (SQLException e) {
System.out.println("MySQL操作错误");
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
}
}
//==输出
// 成功加载MySQL驱动程序
// 城市id 城市名称
// 110100 北京
// 120100 天津
// 130101 石家庄
// 130201 唐山
// 130301 秦皇岛
// 130701 张家口
// 130801 承德
// 131001 廊坊