【MySQL】第02章_MySQL环境搭建

第02章_MySQL环境搭建

服务启动与停止

# 启动 MySQL 服务命令:
net start MySQL服务名
# 停止 MySQL 服务命令:
net stop MySQL服务名

登录MySQL

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

mysql -h localhost -P 3306 -u root -pqiuyu 
mysql -uroot -pqiuyu 

查看版本

登陆前

mysql -V
mysql --version

登录后

mysql> select version();

退出MySQL

exit
或
quit

1. MySQL操作

1.1 MySQL的使用演示

查看所有库/表: show databases/tables (from dbname)

查看创建库/表: show create database/talbe name

创建库/表 create database/table name

查看表 select * from dbname

删除库/表: drop

数据库
查看所有的数据库
show databases;

“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等

“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。

“sys”数据库是 MySQL 系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。

“mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等

Q:为什么 Workbench 里面我们只能看到“demo”和“sys”这 2 个数据库呢?

A:这是因为,Workbench 是图形化的管理工具,主要面向开发人 员,“demo”和“sys”这 2 个数据库已经够用了。如果有特殊需求,比如,需要监控 MySQL 数据库各项性能指标、直接操作 MySQL 数据库系统文件等,可以由 DBA 通过 SQL 语句,查看其它的系统数据库。

创建数据库
create database 数据库名;

#创建atguigudb数据库,该名称不能与已经存在的数据库重名。
create database atguigudb;
使用数据库
use 数据库名;

#使用atguigudb数据库
use atguigudb;

说明:如果没有使用use语句,后面针对数据库的操作也没有加“数据名”的限定,那么会报“ERROR 1046 (3D000): No database selected”(没有选择数据库)

使用完use语句之后,如果接下来的SQL都是针对一个数据库操作的,那就不用重复use了,如果要针对另一个数据库操作,那么要重新use。

查看数据库的创建信息
show create database 数据库名
#查看atguigudb数据库的详细创建信息
show create database atguigudb
#结果如下
*************************** 1. row ***************************
Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)

上面的结果显示atguigudb数据库也不支持中文,字符集默认是latin1。

删除数据库
drop database 数据库名;
#删除atguigudb数据库
drop database atguigudb;
表格
查看数据库的所有表格
show tables; #要求前面有use语句
show tables from 数据库名;
创建新的表格
create table 表名称(
字段名 数据类型,
字段名 数据类型
);

说明:如果是最后一个字段,后面就不用加逗号,因为逗号的作用是分割每个字段。

#创建学生表
create table student(
id int,
name varchar(20) #说名字最长不超过20个字符
);
查看一个表的数据
select * from 数据库表名称;
#查看学生表的数据
select * from student;
添加一条记录
insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');

报错:字符集的问题。

mysql> insert into student values(1,'张三');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at
row 1
mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at
row 1
mysql> show create table student;
查看表的创建信息
show create table 表名称
#查看student表的详细创建信息
show create table student
#结果如下
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

上面的结果显示student的表格的默认字符集是“latin1”不支持中文。

删除表格
drop table 表名称;
#删除学生表
drop table student;

1.2 MySQL的编码设置

MySQL5.7中

问题再现:命令行操作sql乱码问题

mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at row 1

问题解决

步骤1:查看编码命令

show variables like 'character_%';
show variables like 'collation_%';

步骤2:修改mysql的数据目录下的my.ini配置文件

[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci

注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会导致文件编码修改为“含BOM头”的编码,从而服务重启失败。

步骤3:重启服务

步骤4:查看编码命令

show variables like 'character_%';
show variables like 'collation_%';

image-20221207035841696

image-20221207035852423

如果是以上配置就说明对了。接着我们就可以新创建数据库、新创建数据表,接着添加包含中文的数据了。

MySQL8.0中

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0开始,数据库的默认编码改为utf8mb4 ,从而避免了上述的乱码问题。

2. 常见问题解决

问题1:root用户密码忘记,重置的操作

1: 通过任务管理器或者服务管理,关掉mysqld(服务进程)
2: 通过命令行+特殊参数开启mysqld mysqld --
defaults-file="D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini" --skip-grant-tables
3: 此时,mysqld服务进程已经打开。并且不需要权限检查 
4: mysql -uroot 无密码登陆服务器。另启动一个客户端进行
5: 修改权限表 
(1) use mysql; 
(2)update user set authentication_string=password('新密码') where user='root' and Host='localhost'; (3)flush privileges;
6: 通过任务管理器,关掉mysqld服务进程。 
7: 再次通过服务管理,打开mysql服务。 8: 即可用修改后的新密码登陆。

问题2:mysql命令报“不是内部或外部命令”

如果输入mysql命令报“不是内部或外部命令”,把mysql安装目录的bin目录配置到环境变量path中。如
下:

image-20221207040352380

问题3:错误ERROR :没有选择数据库就操作表格和数据

image-20221207040421774

问题4:命令行客户端的字符集问题

mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at row 1

原因:服务器端认为你的客户端的字符集是utf-8,而实际上你的客户端的字符集是GBK。

image-20221207040456182

查看所有字符集:SHOW VARIABLES LIKE ‘character_set_%’;

image-20221207040515473

问题5:修改数据库和表的字符编码

修改编码:
(1)先停止服务,(2)修改my.ini文件(3)重新启动服务
说明:
如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的Latin1,要么删了重建,要么使用
alter语句修改编码。

mysql> create database 0728db charset Latin1;
Query OK, 1 row affected (0.00 sec)
mysql> use 0728db;
Database changed

mysql> create table student (id int , name varchar(20)) charset Latin1;
Query OK, 0 rows affected (0.02 sec)
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table student charset utf8; #修改表字符编码为UTF8
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(20) CHARACTER SET latin1 DEFAULT NULL, #字段仍然是latin1编码
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> alter table student modify name varchar(20) charset utf8; #修改字段字符编码为UTF8
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show create database 0728db;;
+--------+-----------------------------------------------------------------+
|Database| Create Database |
+------+-------------------------------------------------------------------+
|0728db| CREATE DATABASE `0728db` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database 0728db charset utf8; #修改数据库的字符编码为utf8
Query OK, 1 row affected (0.00 sec)

mysql> show create database 0728db;
+--------+-----------------------------------------------------------------+
|Database| Create Database |
+--------+-----------------------------------------------------------------+
| 0728db | CREATE DATABASE `0728db` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+--------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
诛仙私服是一款非常受欢迎的游戏,而要搭建诛仙私服需要用到MySQL数据库MySQL是目前最流行的开源数据库之一,其特点是稳定、可靠、免费,可以快速地处理数据,支持并发处理和高性能读写操作。下面是诛仙私服MySQL搭建的详细流程。 第一步:安装MySQL数据库 首先下载安装MySQL数据库,可以在MySQL官网上下载,安装时建议选择完整版安装,否则后续可能需要手动安装一些缺失的组件。按照安装向导进行安装即可,过程中会提示设置管理员账户和密码。 第二步:创建数据库MySQL中,通过SQL语句可以创建数据库。 例如: CREATE DATABASE zhu_xian; 这条语句就可以创建一个名为zhu_xian的数据库。 第三步:创建表格 在已创建的数据库中,需要创建游戏所需的各种表格。可以使用MySQL Workbench等工具进行表格设计、编写和执行,也可以通过SQL语句进行创建。表格的具体结构需要根据游戏的需求来设计。 例如: CREATE TABLE player( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30) NOT NULL, level INT NOT NULL, exp INT NOT NULL ); 这条语句就可以创建一个名为player的表格,用于存储玩家的ID、昵称、等级和经验值等信息。 第四步:连接数据库 在游戏服务器中,需要通过代码连接MySQL数据库,以实现数据的读写。连接MySQL数据库需要指定数据库的地址、端口、管理员账号和密码等信息。 例如: String url = "jdbc:mysql://localhost:3306/zhu_xian"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); 这段代码就可以连接到地址为localhost、端口为3306、用户名为root、密码为123456的zhu_xian数据库。 以上就是诛仙私服MySQL搭建的大致流程,需要根据实际情况进行合理的修改和调整。在整个过程中需要注意数据库的安全性,保证管理员账号和密码不会外泄,同时可以通过备份等方式保证数据的安全和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值