在Ubuntu系统刚安装完mysql数据库时可能系统会默认给你设置一个root用户的密码,但是我们不知道密码是多少,者时候我们可以通过下面的方式来改变root用户的密码。
-
用SET PASSWORD命令
首先登录MySQL
格式:mysql> set password for 用户名@localhost = password(‘新密码’);
例子:mysql> set password for root@localhost = password(‘123’);
-
用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123
-
用UPDATE直接编辑user表
首先登录MySQL
mysql> use mysql;
mysql> update user set password=password("123") where user="root" and host="localhost";
mysql> flush privileges;
-
在忘记root密码的时候,可以这样 ,以windows为例:
-
关闭正在运行的MySQL服务
-
打开DOS窗口,转到mysql\bin目录
-
输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证
-
再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录
-
输入mysql回车,如果成功,将出现MySQL提示符 >
-
连接权限数据库: use mysql;
-
改密码:update user set password=password(“123”) where user=”root”;(别忘了最后加分号)
-
刷新权限(必须步骤):flush privileges;
-
退出 quit
-
注销系统,再进入,使用用户名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;