1.数据库管理员密码设置

root reset the password

mysqladmin -u root -p password 密码


2. 授权远程连接

authorization remote connect

 

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; // %:表示从任何主机连接到mysql服务器

​或者

GRANT ALL PRIVILEGES ON *.* TO 'user'@'10.192.168.183' IDENTIFIED BY 'password' WITH GRANT OPTION;//表示从指定ip从任何主机连接到mysql服务器

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

如果远程还是没有办法访问,那就开启3306端口就行:

最简单的办法是关闭防火墙systemctl stop firewalld 与systemctl disable firewalld

[root@marslv yum.repos.d]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

[root@marslv yum.repos.d]# service iptables save

[root@marslv yum.repos.d]# service iptables restart


  1. 该表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -p

mysql>use mysql;

mysql>update user set host = '%' where user = 'root' and host='localhost';

mysql>select host, user from user;

然后重启MySQL服务。或再执行 执行一个语句 mysql>FLUSH RIVILEGES 使修改生效。

创建用户

//创建用户

mysql> insert into mysql.user(Host,User,Password) values("localhost","admin",password("admin"));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:admin 密码为:admin 的用户。

创建数据库(在root权限下)

create database mydb;

//授权admin用户拥有mydb数据库的所有权限。

grant all privileges on mydb.* to admin@localhost identified by 'admin';
//刷新系统权限表
mysql>flush privileges;


删除用户。

@>mysql -u root -p

@>密码

mysql>DELETE FROM user WHERE User="admin" and Host="localhost";

mysql>flush privileges;

//删除用户的数据库

mysql>drop database mydb;

修改指定用户密码。

@>mysql -u root -p

@>密码

mysql>update mysql.user set password=password('新密码') where User="admin" and Host="localhost";

mysql>flush privileges;


​忘记了MariaDB root密码的解决办法​​​


  1. 停掉mariaDB

systemctl stop mariadb.service

  1. KILL掉系统里的MySQL进程;

ps -ef | grep mariadb #查询进程PID kill 进程PID

kill 进程PID

  1. 用以下命令启动MySQL,以不检查权限的方式启动;

mysqld_safe -skip-grant-tables &

或是 修改/etc/my.cnf文件,在[mysqld]下添加 skip-grant-tables , 再启动mysql

Mysql 中文乱码,授权远程连接,root密码配置 _数据库

  1. 然后用空密码方式使用root用户登录 MySQL;

mysql -u root

  1. 修改root用户的密码;

mysql> update mysql.user set Password=password('新密码') where User='root'

mysql> flush privileges;

  1. 改完密码别忘记删除配置文件中的 skip-grant-tables
  2. 重新启动MySQL,就可以使用新密码登录



中文乱码处理方法 

查看表字符编码

MariaDB [ry]> show create table sys_dept \G;

Mysql 中文乱码,授权远程连接,root密码配置 _mysql_02

Mysql 中文乱码,授权远程连接,root密码配置 _数据库_03

修改后。

Mysql 中文乱码,授权远程连接,root密码配置 _ide_04

数据库的编码也存在问题。

MariaDB [ry]> show variables like '%char%';



Mysql 中文乱码,授权远程连接,root密码配置 _mysql_05

修改字符编码:

set character_set_server=utf8;

set character_set_database=utf8;

show variables like '%char%';

我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

Mysql 中文乱码,授权远程连接,root密码配置 _服务器_06


不要怕,下面就教你终极大招:

修改mysql配置文件/etc/my.cnf。

[mysqld]

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

Mysql 中文乱码,授权远程连接,root密码配置 _root用户_07



删除数据库

drop database ry;

create database ry;

show create table sys_dept \G;

Mysql 中文乱码,授权远程连接,root密码配置 _服务器_08