MySQL 配置

Windows 下 MySQL 配置

安装 MySQL

参考链接

  1. MySQL下载安装、配置与使用(win7x64)

下载

MySQL 官网 下载 MySQL 5.6 版本(5.7 版本配置失败)的 64bit ZIP Archive,解压到你想安装的地址(这里是 C:\mysql\mysql-5.6.31-winx64)。

配置 .ini 文件

在 MySQL 安装目录下,新建 my.ini 文件(替代默认的 my-default.ini 文件),将如下内容写进 my.ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\mysql\\mysql-5.6.31-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\\mysql\\mysql-5.6.31-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

安装 MySQL 服务

以管理员身份打开 cmd 进入 MySQL 安装文件夹下的 bin 文件夹,执行:

1
mysqld install

来安装服务。接着输入:

1
net start mysql

来启动服务。也可以进入任务管理器的服务标签栏,选择 MySQL 来控制其服务的启动或停止等操作。

打开 MySQL

输入:

1
mysql -uroot -p

进入 mysql,会要求输入密码, 默认是没有密码的直接进入即可。另外设置密码的命令是:

1
mysqladmin -u root -p password 密码

进入 mysql 后会显示 mysql 的命令提示符。退出 mysql 需要使用 exit 命令。注意直接关闭 cmd 窗口是没有退出 mysql 的。

为了避免每次都要进入 bin 才能启动服务和进入 mysql,只要将 C:\mysql\mysql-5.6.31-winx64\bin 加入环境变量(并重启或注销电脑生效)即可。

MySQL 瘦身

mysql 压缩包只有 351M,但加压后竟然有 1.6G。我们可以删除所有的 Debug 文件来减少 MySQL 的大小。即删除 mysql 安装目录下所有的 Debug 目录和 .pdb 文件即可。

总结

mysqld 与 mysql 的区别在于,前者是 database (数据库) 服务的控制程序,后者是 sql 语句访问数据的执行程序。mysqld install 意味着注册并安装了服务,即在注册表可以看到 MySQL 一项,同时在任务管理器的服务一栏中也可以找到 MySQL 一项。net start mysql 意味着启动了 MySQL 的服务,可以在任务管理器中看到 MySQL 变成了“启动”状态。同样 net stop mysql 将会关闭 MySQL 服务,关闭后 MySQL 一项仍然存在于任务管理器,但是状态变成了“停止”。

安装 VS 支持

参考链接

  1. MySQL for Visual Studio

下载 MySQL Installer

我们需要安装两个插件用于 VS 支持:MySQL for Visual Studio 与 Connector/NET。由于手动安装需要考虑顺序的问题,我们直接通过 MySQL Installer 来自动安装它们。进入网站 Download MySQL Installer 下载 MySQL Installer,选择 web-community 即可,因为我们并不需要安装所有的工具,只需按需下载。

双击 MySQL Installer 打开,在 Setup Type 中选择 Custom,然后在 Select Products and Features 中选择 MySQL for Visual Studio 与 Connector/NET,执行安装。

创建 VS 连接

首先打开 MySQL 服务(net start mysql)。接着打开 Visual Studio (2013 或以上版本),选择 View -> ServerExplorer 菜单调出 ServerExplorer 视图。右击 Data Connections,选择 Add Connection...,将会打开如下对话框:

Add Connection Dialog

Server name 填 localhost,user namepassword 分别为 root 和设置好的密码。用户名和密码填写正确后,点击 Database name 的下拉框会出现 MySQL 中已有的数据库,选择一个,按 OK 连接即可。同样可以使用 Test Connection 按钮来测试连接,连接成功会弹出 Test Connection Succeeded 提示。连接后,在 ServerExplorer 会就可以看到展开的数据库:

ServerExplorer

MySQL 工具栏

点击 View -> Toolbar -> MySQL 会出现 MySQL 工具栏。可以创建 MySQL Script 或切换数据库等。当然 MySQL Script 文件也可以通过 File -> New ->MySQL Script 菜单来创建,可以在里面写 SQL 语句并执行。

C# 操作 MySql

参考链接

  1. MySql C# Tutorial

总结

所谓对数据库的操作,无非是连接/断开连接数据库,以及增/删/修改/查询条目或表格。

连接数据库,需要指定用户名、密码、数据库名和 host 名,把它们写进 connection string 中并通过 MySqlConnection 对象来 Open Connection。

增删改查,则通过 SQL 语句来实现,将 SQL 语句写在 string 对象里,并通过 MySqlCommand 对象来执行。注意“增、删、改”的时候,是没有数据返回的,所以通过 cmd.ExecuteNonQuery() 来执行即可;而“查询”的时候是需要得到返回数据的,通过 cmd.ExecuteReader() 将查到的数据返回到一个 MySqlDataReader 对象里,通过 reader.Read() 逐条读取。

在增删改查的时候,为了防止 SQL 注入攻击,获得更好的安全性,可以使用 prepared statement,即把 SQL 语句中指定的条目值以 placeholder (如 @Name)的方式保留,等到后面再指定具体的 value。

Mac 下安装 MySQL

安装 MySQL

参考链接

  1. MySql | Mac 开发配置手册

安装

使用 Homebrew 安装 MySQL,同时也会安装 MySQL 的相关文件:

1
2
brew update # 这是一个好习惯
brew install mysql

配置

使用 MySQL 前,需要做一些配置:

1
2
3
unset TMPDIR
# mkdir /usr/local/var # already exists
# mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp # already exists

由于本人安装时是较新的 5.7.x 版本,所以后面两个配置应该是不需要的,运行会报 already exists 的错。

使用

启动 MySQL 服务:

1
mysql.server start

关闭 MySQL 服务:

1
mysql.server stop

使用 help 查看更多命令:

1
mysql.server --help

登录 MySQL:

1
mysql -uroot

默认情况下,MySQL 的 root 用户是没有密码的。可以设置密码:

1
mysqladmin -u root password 'new-password'

安装 MySQL Connector/C++

下载 MySQL Connector/C++ source code:

1
git clone https://github.com/mysql/mysql-connector-cpp.git

编译:

1
2
3
4
5
cd mysql-connector-cpp
mkdir build #外部编译
cd build
cmake ..
make install

可能会报错:

1
Boost or some of its libraries found. If not in standard place please set -D

安装 boost 即可:

1
brew install boost

然后再 cmake ..make install

Ubuntu 下安装配置 MySQL

参考链接

  1. Ubuntu 安装mysql和简单操作

安装 MySQL

1
2
sudo apt-get update
sudo apt-get install mysql-server mysql-client libmysqlclient-dev

安装过程中会要求输入 root 用户密码并确认,输入并回车即可。安装完成后输入如下命令检查是否安装成功:

1
sudo netstat -tap | grep mysql

输入命令后,发现 mysql 的 socket 处于 LISTEN 状态则表明安装成功。

登录 mysql 使用如下命令:

1
mysql -u root -p

-u 代表用户名,-p 代表使用密码。输入密码后回车看到 mysql>,输入 SHOW DATABASES; 来查看数据库。

写一段简单的 C++ 代码来测试 mysql 数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
MYSQL* conn;
MYSQL_RES* res;
MYSQL_ROW row;
char server[] = "localhost";
char user[] = "root";
char password[] = "password";
char database[] = "mysql";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_query(conn, "show tables"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("%s \n", row[0]);
}
mysql_free_result(res);
mysql_close(conn);
printf("finish! \n");
return 0;
}

另附 Ubuntu 开启和关闭 mysql 服务的命令:

1
2
sudo /etc/init.d/mysql start #开启 mysql 服务
sudo /etc/init.d/mysql stop #关闭 mysql 服务

在启动管理 init.d 里关于 mysql 的命令有:

1
sudo /etc/init.d/mysql start | stop | restart | reload | force-reload | status

Ubuntu 下 mysql 的配置文件在 /etc/mysql/my.cnf 中。修改配置文件,然后 restart mysql 即可生效。

配置 Eclipse 开发 MySQL 的 C++ 环境

安装 Eclipse CDT (C/C++ Development Tooling):

1
sudo apt-get install eclipse eclipse-cdt

打开 Exlipse,创建 empty C++ project,新建 src folder 并新建 mysqltest.cpp 文件,输入上一节中d C++ 测试代码。输入 ctrl+b 编译,此时当然是不会编译通过的,因为无法找到 mysql 二进制库(头文件是可以找到的,因为在系统路径里)。

远程连接 Ubuntu 上的 MySQL

分为两步:

  1. 修改 Ubuntu 上 MySQL 的配置文件,允许外部访问;
  2. 关闭 MySQL 防火墙 iptables --flush

远程连接即可。