环境搭建

1. 安装 mysql

  • 请切换 root 用户 或获取root权限后操作

1.1. 下载安装

apt-get update # 更新资源索引  下载慢的话需要换软件源

apt-get install mysql-server # 安装 mysql

1.2. 安全配置

mysql_secure_installation
  • 目前尝试失败 老是访问被拒绝 之后再看 (原来是一路瞎安 初始未设置mysql密码 见后文解决办法)

当有一个可以登录的 root 用户后 尝试成功!!!
直接根据提示 选择 Yes or No 就完成了安全配置

1.3. 检查服务状态

systemctl status mysql.service

1.4. 配置远程访问

sudo mysql -uroot -p

GRANT ALL PRIVILEGES ON  *.* TO root@localhost IDENTIFIED BY "123456";   # 增加 root 用户 只能从 localhost 登录 密码为123456  可以登录任何库

CREATE DATABASE ubuntudb; # 新建一个数据库

GRANT ALL PRIVILEGES ON ubuntudb.* TO snado@"%" IDENTIFIED BY "654321";   #  增加 snado 用户 从任意 ip 登录 密码为 654321 只能访问 ubuntudb 库

# user@ip    ip 为 % 代表任意ip登录

1.5. 在 mysql 8.X 版本里改变了用法 (如果mysql是 8.x版本 很多东西都不一样 以后去百度)

#创建账户 (貌似自带root用户  再创建会失败)
create user root@localhost identified by  'root';

#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to root@localhost with grant option;

#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

1.6. 开始安装 没有设mysql 的 root 密码

1.6.1. 用默认用户密码登录数据库

用文本编辑器打开这个文件
/etc/mysql/debian.cnf

用文件中的 user 和 password 登录 mysql

mysql -udebian-sys-maint -p13BuRsvPnmzrVsnR

1.6.2. 设置 root 密码

use mysql; # 切换数据库
update mysql.user set authentication_string=password('root') where user='root'; # 修改本地root用户密码
update user set plugin="mysql_native_password"; # 不知道是要干嘛
flush privileges; # 刷新权限
quit;

1.6.3. 重启数据库

service mysql restart
mysql -uroot -proot

2. mysql命令

2.1. mysql 服务操作 (linux系统知识)

service mysql status   # 查看 mysql 状态
service mysql stop     # 停止 mysql 服务
service mysql start    # 启动 mysql 服务

2.2. 远程登录

mysql -h192.168.5.131 -usnado -p

2.3. mysql 目录结构

数据与文件对应关系
数据库 --> 一个文件夹
   表 --> 一个文件

3. 有一个大坑

# Mysql只能本地登录,无法远程登录
netstat -apn |grep 3306 
# 如果输出结果包括tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -时,说明监听的host为127.0.0.1,只能本地访问,需要设置监听host:
# 需要修改监听的host 
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf 
# 注释掉bind-address = 127.0.0.1, 即#bind-address = 127.0.0.1
# 或改为
bind-address = 0.0.0.0
# 重启服务 
sudo /etc/init.d/mysql restart
# 查看端口状态 
netstat -apn |grep 3306 
#此时应为:tcp6 0 0 :::3306 :::* LISTEN -

3.1. mysql 8 改了加密方式 navicat连接不上

  • 解决方案
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
FLUSH PRIVILEGES;

posted on 2020-12-15 21:53  SNADO  阅读(95)  评论(0)    收藏  举报

导航