安装完MySQL后,我们需要对MySQL环境进行基础设置。
我们以linux环境描述具体操作,windows环境下个别命令不同而已。
登录MySQL
MySQL通常有以下两个问题需要注意:
一、字符集修正
MySQL默认latin1字符集,我们需要把它调整为UTF8字符集,以兼容大多数字符集。
修改MySQL配置文件
输入/mysqld,找到 [mysqld],键入i 在末尾加上以下内容:
键入ctrl+c终止输入,键入/client,找到[client] 在末尾加上以下内容:
键入ctrl+c终止输入,键入:wq保存退出。
重启MySQL
登录MySQL后,实行以下sql语句验证字符集
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
为确保字符集完全统一,在建表、建库的时候要强制设定统一字符集。
另外通过JDBC连接MySQL的时候为确保万无一失,连接字符串需要加上以下参数:
useUnicode=true&characterEncoding=UTF-8强制使用UTF8作为会话及字符集。
字符集已经全部转为UTF8了,字符集问题终结。
二、MySQL 设置远程访问
MySQL远程访问,也就是通过ip访问MySQL服务,MySQL对于安全的要求是非常严格的,需要授权。
上述命令的意思是为admin用户授权,以localhost方式访问数据库,密码为admin,这是我们推荐的访问方式,不直接暴露IP,提高数据库服务器的安全性。
如果数据库服务器与应用服务器物理层面分割,也就是不在同一台服务器的时候,我们需要通过ip方式访问,这个ip就是数据库服务器主机IP。
OK,现在我们可以开始部署我们的应用了!
我们以linux环境描述具体操作,windows环境下个别命令不同而已。
登录MySQL
echo 登录MySQL mysql -u root -p
MySQL通常有以下两个问题需要注意:
- 字符集问题
- 远程访问问题
一、字符集修正
MySQL默认latin1字符集,我们需要把它调整为UTF8字符集,以兼容大多数字符集。
修改MySQL配置文件
echo 设置字符集 vim /etc/mysql/my.cnf
输入/mysqld,找到 [mysqld],键入i 在末尾加上以下内容:
#Set the default character set. default-character-set=UTF8
键入ctrl+c终止输入,键入/client,找到[client] 在末尾加上以下内容:
#Set the default character set. default-character-set=UTF8
键入ctrl+c终止输入,键入:wq保存退出。
重启MySQL
/etc/init.d/mysql restart
登录MySQL后,实行以下sql语句验证字符集
show variables like "%colla%";
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
show variables like "%char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
为确保字符集完全统一,在建表、建库的时候要强制设定统一字符集。
另外通过JDBC连接MySQL的时候为确保万无一失,连接字符串需要加上以下参数:
jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8
useUnicode=true&characterEncoding=UTF-8强制使用UTF8作为会话及字符集。
字符集已经全部转为UTF8了,字符集问题终结。
二、MySQL 设置远程访问
MySQL远程访问,也就是通过ip访问MySQL服务,MySQL对于安全的要求是非常严格的,需要授权。
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'admin' WITH GRANT OPTION;
上述命令的意思是为admin用户授权,以localhost方式访问数据库,密码为admin,这是我们推荐的访问方式,不直接暴露IP,提高数据库服务器的安全性。
如果数据库服务器与应用服务器物理层面分割,也就是不在同一台服务器的时候,我们需要通过ip方式访问,这个ip就是数据库服务器主机IP。
GRANT ALL PRIVILEGES ON *.* TO admin@219.162.131.46 IDENTIFIED BY 'admin' WITH GRANT OPTION;
OK,现在我们可以开始部署我们的应用了!
