MySQL常见问题

MySQL 连接字符串

MySQL 5.7

jdbc.drive=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=123456

注意:好像现在MySQL5.7的新版本也需要设置时区了;如果上面的连接不上MySQL,就用下面的这个

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

MySQL 8

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456

时区问题

世界标准时间(比北京时间慢八小时):UTC
格林尼治标准时间:GMT
北京时间:GMT%2B8
上海时间:Asia/Shanghai

MySQL修改用户权限

MySQL数据库修改用户权限(远程访问权限、操作权限)

前提:需要使用命令行登陆,并切换到MySQL库

CMD 命令行登录 MySQL:mysql -uroot -p
使用 mysql 数据库
use mysql;

查询用户表并检查用户的访问权限<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Query the user table and check the user's access rights</font>*</details>
select host,user from user where user='root';
将 host 设置为 % 表示任何 IP 都能连接 mysql,当然也可指定为某个特定 ip
update user set host='%' where user='root';
重新加载权限表
flush privileges;

给 root 用户赋予远程连接权限
grant all privileges on *.* to 'root'@'%' with grant option;
重新加载权限表
flush privileges;

MySQL 重置密码

记得密码

更改密码并以加密方式存储<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Change the password and store it in an encrypted way</font>*</details>
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

低于5.7新版本的使用这个命令
update user set password=password("123456") where user="root";

高于5.7版本的password字段已经变为了authentication_string
update user set authentication_string=password("123456") where user="root";

注意

  • alter 和 update 命令均可修改密码,但是它们也是有区别的
  • update 修改后的密码存储在数据库中是明文;而 alter 存储的是加密后的数据
  • update 命令保存的为明文是因为没有使用 password() 方法,而 password() 方法在 mysql5.7.6 版本以后已经废弃了,所以必须使用 alter 命令去修改密码了
  • 在免鉴权的情况下,直接使用 alter 命令去修改密码也是不可以的,会报错;所以必须先使用 update 命令清空密码,然后再使用alter命令修改密码

不记得密码

修改配置文件

  • my.ini 文件的 [mysqld] 这个条目下加入 skip-grant-tables 保存后退出,重启MySQL服务
  • 这时候在cmd里面输入 mysql -u root -p 就可以不用密码登录了,出现了password:的时候直接回车可以进入
使用 mysql 库
use mysql;

低于5.7新版本的使用这个命令
update user set password=password("123456") where user="root";
高于5.7版本的password字段已经变为了authentication_string
update user set authentication_string=password("123456") where user="root";

重新加载权限表
flush privileges;
  • 最后,删除最后一行的”skip-grant-tables”,保存并关闭文件,并重启MySQL服务

直接使用CMD命令

注意:命令行需要以管理员身份运行

[En]

Note: the command line needs to be run as an administrator

停止 MySQL 服务
net stop mysql
启动 MySQL 服务的时候跳过权限表认证
mysqld --console --skip-grant-tables --shared-memory
由于上面的命令行被mysql的服务给占用,我们得重新开启一个新的命令行
mysql -uroot -p
use mysql;
将root用户的密码清空(低于5.7)
update user set password=password("") where user="root";
将root用户的密码清空(高于5.7)
update user set authentication_string="" where user="root";
quit 退出此命令行
quit;

然后在之前的命令行将我们开启的 mysql 服务停止掉(Ctrl+C 或者关闭命令行)
然后执行net start mysql 重新启动 mysql 服务

命令行中输入mysql -uroot -p 然后按enter键,密码为空
use mysql;
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
退出后,使用新密码登录
quit;

Win10 安装两个MySQL

前提:在本地安装了MySQL8之后,还想安装MySQL5.7

  • 到官网下载MySQL5.7的压缩包
  • 把安装包放到D盘(不要和MySQL8放到同一个文件夹里面),并配置好MySQL5.7的Path路径
  • 将MySQL原来的服务停掉
  • 在MySQL5.7的压缩路径下创建 my.ini 文件
[mysql]
设置MySQL客户端默认字符集
default-character-set=utf8

[mysqld]
设置3307端口
port=3307
设置MySQL的安装目录
basedir=D:\\software\\Database\\mysql-5.7.36-winx64
设置MySQL的数据存放目录
datadir=D:\\software\\Database\\mysql-5.7.36-winx64\\data
允许最大连接数
max_connections=200
服务器使用的字符集默认为8比特编码的lantin1字符集
character-set-server=utf8
创建新表时使用的默认存储引擎<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Default storage engine to use when creating new tables</font>*</details>
default-storage-engine=INNODB
  • mysql 安装问题:由于找不到MSVCP120.dll,无法继续执行代码.重新安装程序可能会解决此问题 解决方法
  • 以管理员身份打开cmd 【注意是管理员身份,要不会报错】【 进入到mysql安装目录的bin目录下
  • 这里要注意控制台里生成的密码,并进行保存:位置在 A temporary password is generated for root@localhost: 后面
d:
cd D:\software\Database\mysql-5.7.36-winx64\bin
mysqld --defaults-file=D:\\software\\Database\\mysql-5.7.36-winx64\\my.ini --initialize --console
  • 然后再执行命令【 进入到mysql安装目录的bin目录下
mysqld install MySQL5.7.36 --defaults-file="D:\\software\\Database\\mysql-5.7.36-winx64\\my.ini"
  • 打开注册表 win+R 👉 regedit ,查找 &#x8BA1;&#x7B97;&#x673A;\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services 下的 MySQL5.7.36
  • 并修改ImagePath中的路径
"D:\software\Database\mysql-5.7.36-winx64\bin\mysqld.exe" --defaults-file="D:\software\Database\mysql-5.7.36-winx64\my.ini" MySQL5.7.36
  • 在任务管理器中开启MySQL5.7.36服务之后,此时在CMD中输入命令,使用临时密码登录,即可访问MySQL5.7服务器了
mysql -uroot -P3307 -pSSuaQvogx7/Q
  • 修改密码
set password for root@localhost=password('123456');
quit;

Linux安装MySQL

  • 上传 mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar 到linux中的/opt/resources下,然后把该文件包解压到mysql文件夹中
cd /opt/resources

mkdir mysql

tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql
  • 然后逐一执行命令,安装相应的程序
    [En]

    then execute the command one by one to install the corresponding program*

rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpmyum install openssl-develrpm -ivh  mysql-community-devel-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpmrpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm
  • 启动MySQL服务
systemctl start mysqld
systemctl restart mysqld
systemctl stop mysqld
  • 查询自动生成的root用户密码
grep 'temporary password' /var/log/mysqld.log
  • 登录MySQL
mysql -u root -p
  • 修改root用户密码
  • 设置密码的复杂度为简单类型,密码长度为6
set global validate_password.policy = 0;set global validate_password.length = 6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  • 然后记得修改下远程权限
  • 最后开放Linux防火墙的3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload

Original: https://www.cnblogs.com/sbgong/p/15646302.html
Author: 不二橘子酱
Title: MySQL常见问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/507978/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaScript 获取 Url 上的参数(QueryString)值

    获取URL里面传的参数,在Js中不能像后台一样使用Request.QueryString来获取URL里面参数,下面介绍两种方式用来获取参数 方式一:使用split分隔来获取,这种方…

    数据库 2023年6月9日
    074
  • MySQL Operator 01 | 架构设计概览

    高日耀 资深数据库内核研发毕业于华中科技大学,喜欢研究主流数据库架构和源码,并长期从事分布式数据库内核研发。曾参与分布式 MPP 数据库 CirroData 内核开发(东方国信),…

    数据库 2023年5月24日
    096
  • DELL误删raid后恢复方法

    DELL误删raid后恢复方法 一台有RAID1信息的硬盘A,一块误删的硬盘B 1.插入硬盘A和B,启动,再按Ctrl+R键,进入raid管理 发现没有硬盘信息,按F2键 选择Fo…

    数据库 2023年6月9日
    089
  • Java韩顺平

    慢慢更新 什么是程序 程序是有序指令的集合 CMD编译执行Java文件 编译:javac 文件名.java执行:java 文件名 文件夹地址栏 输入 CMD 弹出本文件夹命令行 J…

    数据库 2023年6月11日
    057
  • jdbc-实现用户登录业务(解决sql注入问题)

    package com.cqust; import java.sql.*;import java.util.HashMap;import java.util.Map;import …

    数据库 2023年5月24日
    063
  • Flyweight 享元(结构型)

    一:描述:(该模式实际应用较少) Flyweight 享元模式是对大量细粒度的元素进行共享和重用。减少对象的创建减轻内存; 注和单例模式不同的是:享元模式的各个对象佣有各自的行为并…

    数据库 2023年6月11日
    095
  • java XML标记语言

    可扩展标记语言( Extensive Markup Language),标签中的元素名是可以自己随意写,可拓展是相对于html来说 标记语言:由一对尖括号括起来 用来当做配置文件 …

    数据库 2023年6月16日
    074
  • MySQL实战45讲 4,5

    04 | 深入浅出索引(上) 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样 索引的常见模型 哈希表、有序数组和搜索树 哈希表 User2 和 User4 根据身份证号…

    数据库 2023年6月16日
    0108
  • win10搜索功能用不了

    这玩意搞了我今天,直接裂开!系统更新根本解决不了 好在查了相关资料才知道,原来微软在 Win10 的更新中,将搜索功能和语音助手 Cortana 进行了拆分,搜索成了一个独立的功能…

    数据库 2023年6月14日
    054
  • mysql基础语法_曾佳豪

    一、构建数据库、表和数据类型 [En] I. Building databases, tables and data types 1.建库 create database if n…

    数据库 2023年5月24日
    086
  • Mysql_视图

    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由…

    数据库 2023年6月11日
    078
  • JAVA编程练习01作业

    2 、 输入一个圆半径(r),计算并输出圆的面积和周长。 3 、输入一个三位正整数n,输出其个位、十位和百位上的数字。 4 、根据性别和体重计算输血量。女性体重不超过50kg的输血…

    数据库 2023年6月11日
    0147
  • js中创建正则对象时,变量中存在转义字符(’/’,’.’等)时,是否需要转义?

    使用直接量创建正则时,很方便,但是如果存在变量时,不适用。 使用正则对象(RegExp)创建时,对于变量中的转义字符不需要处理。 另外测试正则地址: https://develop…

    数据库 2023年6月11日
    0100
  • Java数据结构和算法

    一、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同…

    数据库 2023年6月11日
    095
  • 域名SSL认

    阿里云:域名SSL认证-视频 Hole yor life get everything if you never give up. Original: https://www.cn…

    数据库 2023年6月9日
    0112
  • mysql练习题emp,dept

    DROP DATABASE IF EXISTS emp; CREATE DATABASE emp; USE emp; &#xA0;CREATE TABLE dept( &a…

    数据库 2023年6月9日
    0171
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球