【实验1-1】MySQL的安装与配置。
1.MySQL与MySQL Workbench下载
MySQL官方网站地址:http://www.mysql.com/
下载MySQL:

下载MySQL Workbench :


2.MySQL与MySQL Workbench安装与配置








3.设置环境变量,以便通过命令提示符操作mysql


【实验1-2】创建"汽车用品网上商城系统"数据库。



【实验1-3】在Shopping数据库下,参见3.5节,创建表3-4~表3-11的八个表。









【实验1-4】使用SHOW、DESCRIBE语句查看表。



【实验1-5】使用ALTER TABLE、RENAME TABLE语句管理表。



【实验1-6】使用DROP TABLE语句删除表,也可以使用MySQL Workbench删除表。


【实验1-7】连接、断开MySQL服务器,启动、停止MySQL服务器。
1.通过系统服务启动和停止MySQL服务器:

2.在命令提示符下启动和停止MySQL服务器:

3.在命令提示符下连接、断开MySQL服务器:

4.在MySQL Workbench中连接、断开MySQL服务器:



【实验1-8】使用SHOW DATABASE、USE DATABASE、DROP DATABASE语句管理"网上商城系统" Shopping数据库。





以下为代码:
本实验用到的sql语句如下:
create table `shopping`;
use shopping;
show tables;
describe autoparts;
alter table autoparts add cid int;
rename table autopartsto shoppingcart;
drop table shoppingcart;
show databases;
drop databases shopping1;
以下为命令行下的语句:
net stop mysql
mysql -u root -p test
exit
sql
create table `shopping`;
use shopping;
show tables;
describe autoparts;
alter table autoparts add cid int;
rename table autopartsto shoppingcart;
drop table shoppingcart;
show databases;
drop databases shopping1;
以下为命令行下的语句:
net stop mysql
mysql -u root -p test
exit
一、mysql基础配置示例
client
default-character-set = utf8mb4
mysql
default-character-set = utf8mb4
mysqld
字符集设置(防乱码关键)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
连接设置
max_connections = 200
default_storage_engine = InnoDB
日志设置
general_log = 0
slow_query_log = 1
long_query_time = 2
内存设置(根据实际情况调整)
innodb_buffer_pool_size = 1G
key_buffer_size = 256M
二、中文乱码问题全面解决方案
1. 理解字符集概念
-
utf8:MySQL的"utf8"是阉割版(最多3字节,不支持emoji)
-
utf8mb4:真正的UTF-8(4字节,支持所有Unicode字符)
-
推荐一律使用 utf8mb4
2. 安装时的字符集设置
Windows安装程序:
-
在配置步骤选择"Server Machine"
-
在字符集设置页面选择"Use UTF8MB4 as default character set"
源码编译安装:
cmake . -DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci
3.配置文件中的字符集设置(关键)
mysqld
服务器默认字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
连接字符集
init_connect = 'SET NAMES utf8mb4'
各种字符集统一设置
character-set-client-handshake = TRUE
client
default-character-set = utf8mb4
mysql
default-character-set = utf8mb4
4.创建数据库和表时的设置
-- 创建数据库时指定字符集
CREATE DATABASE `mydb`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 创建表时指定字符集
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL COMMENT '用户名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci
COMMENT='用户表';
5. 检查字符集配置
-- 查看服务器字符集设置
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
-- 查看数据库字符集
SELECT
SCHEMA_NAME '数据库',
DEFAULT_CHARACTER_SET_NAME '字符集',
DEFAULT_COLLATION_NAME '排序规则'
FROM information_schema.SCHEMATA;
-- 查看表字符集
SELECT
TABLE_SCHEMA '数据库',
TABLE_NAME '表',
TABLE_COLLATION '排序规则'
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_database';
6. 连接时的字符集设置
JDBC连接(Java):
String url = "jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
Python连接:
import pymysql
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
database='mydb',
charset='utf8mb4', # 关键!
cursorclass=pymysql.cursors.DictCursor
)
PHP PDO连接:
$pdo = new PDO(
'mysql:host=localhost;dbname=test;charset=utf8mb4',
'username',
'password'
);
7. 已存在数据的转换
-- 修改数据库字符集
ALTER DATABASE `database_name`
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
-- 修改表字符集
ALTER TABLE `table_name`
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 修改字段字符集
ALTER TABLE `table_name`
MODIFY `column_name` VARCHAR(255)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
8. 常见乱码场景及解决
场景1:插入数据时乱码
-- 临时解决方案(会话级别)
SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;
-- 然后执行插入操作
INSERT INTO table (name) VALUES ('中文内容');
场景2:查询结果乱码
-- 确保连接时指定字符集
-- 或在查询前设置
SET character_set_results = utf8mb4;
SELECT * FROM table;
场景3:命令行显示乱码
Linux/Mac终端
mysql --default-character-set=utf8mb4 -u root -p
Windows命令行
chcp 65001 # 设置控制台为UTF-8
mysql -u root -p --default-character-set=utf8mb4
- 备份与恢复时的字符集
备份时指定字符集
mysqldump -u root -p --default-character-set=utf8mb4 \
--set-charset \
--skip-set-charset \
database_name > backup.sql
恢复时指定字符集
mysql -u root -p --default-character-set=utf8mb4 \
database_name < backup.sql
三、总结要点
-
统一使用 utf8mb4:从安装到应用,全程统一字符集
-
配置文件优先:在 my.cnf/my.ini 中配置全局字符集
-
连接时明确指定:所有客户端连接都要指定 utf8mb4
-
四层字符集统一:
-
服务器层(character-set-server)
-
数据库层(CREATE DATABASE)
-
表/字段层(CREATE TABLE)
-
连接层(SET NAMES/连接参数)
-
-
备份恢复一致性:备份恢复时保持字符集一致
-
工具配置:确保所有管理工具(Workbench、Navicat等)使用正确编码
按照以上步骤配置,可以确保 MySQL 支持中文和各种特殊字符,避免乱码问题。
本文为个人学习笔记与经验总结,仅供学习交流参考