KylinV10 安装 MySQL 教程(可防踩雷)

2023-12-21 15:15

本文主要是介绍KylinV10 安装 MySQL 教程(可防踩雷),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

KylinV10 安装 MySQL 教程(可防踩雷)

1、直接用 apt 快捷安装 MySQL

$ sudo apt-get update #更新软件源
$ sudo apt-get install mysql-server #安装mysql

然后你会发现,KylinV10 安装畅通无阻,并没有设置密码的场景,于是你一登陆,发现有密码(?哪来的密码)

kylin@kylinV10:~/桌面$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
kylin@kylinV10:~/桌面$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

2、KylinV10 密码正确也无法登录的情况

这里有点问题的是,银河麒麟系统有点不同,按网上一些改密码的教程,会发现,密码该成功了,输入密码正确也无法登录,输入密码半天连接不了,也不知道是当时设置密码的时候打错了,两次都打错不应该啊。

1703062515988

其实这里主要原因就是因为 kylinV10 的加密方式不一样,MySQL 一般是 mysql_native_password 认证方式,但是 kylinV10 的认证方式是 auth_socket。所以要先改这个,接下来教大家如何改!

1703062674335

3、修改认证方式步骤

具体操作如下:

1、在 mysqld.cnf 最后一行里添加 skip-grant-tables

# 使用 gedit 或者 vim 命令都可以(二选一即可)
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
# 使用 vim 命令
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

直接在最后一行添加

skip-grant-tables
# 如下图

1703062962414

保存后,退出,不用去管报什么错误警告,比如下图这样的

在这里插入图片描述

2、重启 MySQL

sudo service mysql restart

3、连接 MySQL

# 只需要输入mysql就行,其他不用
mysql

4、切换到 mysql 数据库

use mysql;

5、查看一下加密方式

select user, plugin from user;
1703062674335

如果是如图 auth_socket 需要将其修改为 mysql_native_password 这就是为什么我改了几次密码,都还是无法连接成功的原因:身份验证的插件是错的。

6、修改加密认证方式

update user set plugin='mysql_native_password' where user='root';
flush privileges;

7、修改密码

ALTER user 'root'@'localhost' IDENTIFIED BY '123456'; //123456是新密码,改成你自己的
# 注意 MySQL8.0是不支持 password() 函数的,所以以下命令是无效的 
# 如果你安装的是MySQL5.x可以执行下面命令
update user set authentication_string=password("123456"),plugin='mysql_native_password' where user='root';

8、退出

exit;

9、去掉 skip-grant-tables 重启 MySQL 服务

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
# 可以选择删除或者注释掉,注释的话在前面加个 # 就行了

10、重启 MySQL 服务

sudo service mysql restart

11、完整的过程图

1703063339930

4、还不行?还有招

1、初始化配置,设置密码

sudo mysql_secure_installation

然后下面步骤有点多,注意认真看

# 1
Securing the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
# 这里我选择了 No
Press y|Y for Yes, any other key for No: No
# 2
Please set the password for root here...New password: (输入密码)Re-enter new password: (重复输入)
# 3
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
# 我选择了 No
Remove anonymous users? (Press y|Y for Yes, any other key for No) : No 
# 4
Normally, root should only be allowed to connect from'localhost'. This ensures that someone cannot guess atthe root password from the network...
# 我选择了 Yes
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Yes
#5By default, MySQL comes with a database named 'test' thatanyone can access...
# 我选择了 No
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : No
#6Reloading the privilege tables will ensure that all changesmade so far will take effect immediately.
# 我选择了 Yes
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Yes

2、检查MySQL状态

systemctl status mysql.service

3、在终端连接

mysql -u root -p;# 输入密码

5、sqoop 导入 MySQL 中文乱码问题

(可以插入中文,但不能用sqoop导入中文)导致导入时中文乱码的原因是character_set_server默认设置是latin1

可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效,建议按以下方式修改编码方式。

(1)编辑配置文件。

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 或者
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

(2)在[mysqld]下添加一行

character_set_server=utf8

在这里插入图片描述

(3)重启MySQL服务。

service mysql restart

(4)查看character_set_server设置

show variables like "char%";
# 如下图,可以看到 character_set_server 已经变成了 utf8 了

64529576.webp" alt=“1703064529576” style=“zoom: 50%;” />

(3)重启MySQL服务。

service mysql restart

(4)查看character_set_server设置

show variables like "char%";
# 如下图,可以看到 character_set_server 已经变成了 utf8 了

在这里插入图片描述

这篇关于KylinV10 安装 MySQL 教程(可防踩雷)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520481

相关文章

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

MySQL 横向衍生表(Lateral Derived Tables)的实现

《MySQL横向衍生表(LateralDerivedTables)的实现》横向衍生表适用于在需要通过子查询获取中间结果集的场景,相对于普通衍生表,横向衍生表可以引用在其之前出现过的表名,本文就来... 目录一、横向衍生表用法示例1.1 用法示例1.2 使用建议前面我们介绍过mysql中的衍生表(From子句

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地