修改mysql中root用户的密码的方式

在Ubuntu系统刚安装完mysql数据库时可能系统会默认给你设置一个root用户的密码,但是我们不知道密码是多少,者时候我们可以通过下面的方式来改变root用户的密码。

  1. 用SET PASSWORD命令

    首先登录MySQL

    格式:mysql> set password for 用户名@localhost = password(‘新密码’);

    例子:mysql> set password for root@localhost = password(‘123’);

  2. 用mysqladmin

    格式:mysqladmin -u用户名 -p旧密码 password 新密码  例子:mysqladmin -uroot -p123456 password 123

  3. 用UPDATE直接编辑user表

    首先登录MySQL

    mysql> use mysql;

    mysql> update user set password=password("123") where user="root" and host="localhost";

    mysql> flush privileges;

  4. 在忘记root密码的时候,可以这样 ,以windows为例:

    1. 关闭正在运行的MySQL服务

    2. 打开DOS窗口,转到mysqlin目录

    3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证

    4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录

    5. 输入mysql回车,如果成功,将出现MySQL提示符 >

    6. 连接权限数据库: use mysql;

    7. 改密码:update user set password=password(“123”) where user=”root”;(别忘了最后加分号)

    8. 刷新权限(必须步骤):flush privileges;

    9. 退出 quit

    10. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录

解决mysql创建数据库使出现的编码问题

在/etc/mysql/my.cnf中引用了conf.d中的文件,所以直接在/etc/mysql/conf.d/mysql.cnf进行修改。

首先查看一下mysql的编码,进入mysql命令行

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
//或者
mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

Connection id:		3
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.7.22-0ubuntu18.04.1 (Ubuntu)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			3 hours 35 min 40 sec

这里需要设置[mysqld]的character-set-server = utf8

//mysql.cnf
[mysqld]
character-set-server = utf8

然后重启mysql服务,在命令行输入

service mysql restart

如果你不想这么麻烦,可以在创建数据库的时候设置编码为utf8即可

使用如下命令:

CREATE DATABSE db_name DEFUALT CHARACTER SET utf8;
原文地址:https://www.cnblogs.com/finlu/p/11645739.html