Ubuntu18.04安装Mysql 及 MySql修改登录密码 及 MySQL 时区修改

1.Mysql 5.7 安装

  • myslq是 传统的 C/S 架构, 所以要保证 server 和 client 都正确安装.

1.安装方式

1.一: mysql官网下载deb安装包安装 :

  • 1.sudo wget mysql-apt-config_0.8.14-1_all.deb (自行前往mysql官方找到mysql的链接)
  • 2.执行安装: sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb

2.二: Ubuntu shell 中第一次运行 mysql 时候, 当不存在 MySQL的时候, 会提示安装方式, 按照提示安装即可;

  • sudo apt install mysql-server + sudo apt install mysql-client + sudo apt install mysql-xxx

2.mysql-server 安装

  • 1.sudo apt-get update
  • 2.sudo apt-get install mysql-server (如果, 上面已经安装, 这里忽略)

3.安装之后通过 pslsofnetstat 等命令查看是否运行 (注意是否有权限)

  • 1.mysql 默认是 启动中的, 可以通过 service mysql restart|start|stop|等进行管理

2. MySQL 改密问题 | 重置密码问题

常见的改密报错:

1.报错: Duplicate entry '%-root' for key 'PRIMARY', 解决方案:

  • 1.在登录mysql后, 在 mysql client 的命令行中输入:
use mysql;
select user, host from user;

查看是否有 是否已经有 user=‘root’ 的 host 变成 % ;
最后,

flush privileges;

2.报错: 在宿主机上用Navicat for MySQL 连接虚拟机中docker中MySQL容器, 报错: Client does not support authentication protocol requested by server; consider upgrading MySQL, 尝试解决:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
SELECT plugin FROM mysql.user WHERE User = 'root';

3.报错: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements, 解决思路:

  • mysql5.7 之后增强了验证, 改密码这些需要先关闭登录验证;

上述常见报错大部分都是因为未关闭验证导致的, 推荐按照下面的两个方案解决:

方案一:
  • 1.找到配置文件: /etc/mysql/mysql.conf.d/mysqld.cnf(可能会有不同), 在结尾添加skip-grant-tables
  • 2.重启mysql
  • 3.修改密码;
  • 4.注释掉上面添加的skip-grant-tables, 再次重启mysql, 即可用新的密码登录
方案二:
# 关闭 mysql 服务
service mysql stop
# 关闭密码验证, 更推荐直接将网络连接也关闭
# mysqld_safe --skip-grant-tables &
mysqld_safe --skip-grant-tables --skip-networking & #(推荐)
# 连接 mysql server
mysql -p
# 修改密码:
update mysql.user set authentication_string=password('xxxx') where user='root';
# 刷新权限, 使生效
flush privileges;
# 退出
exit
# 重启
service mysql restart

3. MySQL 时区同步问题

关于mysql数据库时区问题- 永久设置成 东八区时间, 修改默认时区;

  • 1.登录mysql后, 在 mysql client 的命令行中输入:
select now();
set global time_zone = '+8:00';
flush privileges;
  • 2.然后, 退出mysql客户端, 重新进入就好了.

你可能感兴趣的:(系统,软件解决方案)