MySQL常见问题处理(三)

MySQL 常见问题解决

夕阳留恋的不是黄昏,而是朝阳

上一章简单介绍了MySQL数据库安装(二), 如果没有看过, 请观看上一章

一. root 用户密码忘记,进行重置操作

复制内容来源链接: https://blog.csdn.net/weixin_48927364/article/details/123556927

一.一 无验证登录

1.1 停止mysql服务

以 管理员身份 打开 cmd窗口,停止mysq服务,即输入以下命令,回车

java 复制代码
net stop mysql

1.2 无验证方式启动mysql服务

继续输入以下命令,回车

java 复制代码
mysqld --skip-grant-tables

1.3 登录数据库

注意不要关闭前面操作的窗口,以管理员身份,再打开一个新的cmd窗口,输入以下命令,回车。即登录成功。

java 复制代码
mysql -u root 

一.二 修改root密码

2.1 使用mysql数据库

继续输入以下命令,使用mysql系统数据库

java 复制代码
use mysql;

2.2 修改root密码

继续输入以下命令,修改root用户对应密码

java 复制代码
update user set password = password('重置的新密码') where user = 'root';

有如上结果,证明修改成功!

一. 三、结束、重启、登录

3.1 结束mysqld.exe进程

关闭两个窗口,打开任务管理器 ,手动结束mysqld.exe的进程

3.2 重启mysql服务

以管理员身份,重新打开一个cmd窗口,输入以下命令,重启mysql服务

sql 复制代码
net start mysql

3.3 登录mysql数据库

输入以下命令,使用新密码登录mysql数据库(localhost省略)

sql 复制代码
mysql -uroot -p重置的新密码

结果显示如上,即重置成功!!!

二. mysql命令报"不是内部或外部命令"

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

三. 错误ERROR :没有选择数据库就操作表格和数据

ERROR 1046 (3D000): No database selected
解决方案一:就是使用"USE 数据库名;"语句,这样接下来的语句就默认针对这个数据库进行操作
解决方案二:就是所有的表对象前面都加上"数据库."

四. 命令行客户端的字符集问题

mysql 复制代码
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。

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

解决方案,设置当前连接的客户端字符集 "SET NAMES GBK;"

五. 修改数据库和表的字符编码

修改编码:

(1)先停止服务,(2)修改my.ini文件(3)重新启动服务

说明:

如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的Latin1,

要么删了重建,要么使用alter语句修改编码。

将表编码进行修改

库和表都是 Latin1 字符

mysql 复制代码
mysql> create database 0728db charset Latin1;
Query OK, 1 row affected (0.00 sec)
复制代码
mysql> use 0728db;
Database changed
mysql 复制代码
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)

通过 alter 修改表 student 字符为 utf8

表虽然改了,但字段仍然是之前的 Latin1

sql 复制代码
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)

将表 student 下的字段 name 也进行修改

sql 复制代码
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)

将数据库编码进行修改

sql 复制代码
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)

谢谢!!!

相关推荐
在未来等你6 小时前
SQL进阶之旅 Day 21:临时表与内存表应用
sql·mysql·postgresql·database·temporary-table·memory-table·sql-optimization
小Tomkk8 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
寒山李白10 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查
冰橙子id10 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php
玛奇玛丶10 小时前
面试官:千万级订单表新增字段怎么弄?
后端·mysql
天天摸鱼的java工程师12 小时前
从被测试小姐姐追着怼到运维小哥点赞:我在项目管理系统的 MySQL 优化实战
java·后端·mysql
Clang's Blog12 小时前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
异常君12 小时前
高并发数据写入场景下 MySQL 的性能瓶颈与替代方案
java·mysql·性能优化
RestCloud12 小时前
如何通过ETLCloud实现跨系统数据同步?
数据库·数据仓库·mysql·etl·数据处理·数据同步·集成平台
程序员岳焱13 小时前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
后端·sql·mysql