美文网首页
Ubuntu16.04安装mysql5.7及配置远程访问

Ubuntu16.04安装mysql5.7及配置远程访问

作者: 吾星喵 | 来源:发表于2018-10-28 11:31 被阅读12次

我的博客,欢迎阅读 https://blog.starmeow.cn

服务器上Ubuntu16.04上进行安装

安装mysql

:~$ sudo apt-get install mysql-server

配置root密码

image.png image.png

配置mysql

:~$ whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

:~$ cd /etc/mysql/

:/etc/mysql$ ls -l
total 24
drwxr-xr-x 2 root root 4096 Oct 23 11:41 conf.d
-rw------- 1 root root  317 Oct 23 11:41 debian.cnf
-rwxr-xr-x 1 root root  120 Jul 28 01:58 debian-start
lrwxrwxrwx 1 root root   24 Oct 23 11:41 my.cnf -> /etc/alternatives/my.cnf
-rw-r--r-- 1 root root  839 Jan 22  2017 my.cnf.fallback
-rw-r--r-- 1 root root  682 Feb  4  2017 mysql.cnf
drwxr-xr-x 2 root root 4096 Oct 23 11:41 mysql.conf.d

:/etc/mysql$ cd mysql.conf.d/

:/etc/mysql/mysql.conf.d$ ls
mysqld.cnf  mysqld_safe_syslog.cnf

:/etc/mysql/mysql.conf.d$ sudo vim mysqld.cnf 

修改mysql端口号为:30306(端口号的范围从0到65535,mysql默认端口号3306)

port            = 30306
# 设置字符集
character-set-server=utf8

# 禁止
# bind-address          = 127.0.0.1

重启服务

:/etc/mysql/mysql.conf.d$ service mysql restart

:/etc/mysql/mysql.conf.d$ netstat -an | grep 3306
:/etc/mysql/mysql.conf.d$ netstat -an | grep 30306
tcp6       0      0 :::30306                :::*                    LISTEN  

开启防火墙(可不用配置)

sudo iptables -A INPUT -p tcp --dport 30306 -j ACCEPT

通过telnet xxx.xxx.xxx.xxx 30306测试端口是否正常访问

添加用户userflaskmovie访问mysql的flaskmovie数据库

如果只允许本地访问,需要将%替换为localhost127.0.0.1

添加新用户

:~$ mysql -uroot -p
Enter password: 

mysql> create user 'userflaskmovie'@'%' identified by 'userflaskmovie';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

创建数据库用户新用户

mysql> create database flaskmovie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;


mysql> create database flaskmovie;
Query OK, 1 row affected (0.00 sec)

为新用户分配该数据库权限

授予用户通过外网IP对于flaskmovie数据库的全部权限

mysql> grant all privileges on `flaskmovie`.* to 'userflaskmovie'@'%' identified by 'userflaskmovie';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for userflaskmovie;
+----------------------------------------------------------------+
| Grants for userflaskmovie@%                                    |
+----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'userflaskmovie'@'%'                     |
| GRANT ALL PRIVILEGES ON `flaskmovie`.* TO 'userflaskmovie'@'%' |
+----------------------------------------------------------------+
2 rows in set (0.00 sec)

新用户登录出错

:~$ mysql -uuserflaskmovie -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'userflaskmovie'@'localhost' (using password: YES)

解决办法:

在mysql5.7以下的版本如下:mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='127.0.0.1' or host='localhost'; 把空的用户密码都修改成非空的密码就行了

在mysql5.7版本如下:update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';

实际操作

mysql> select * from mysql.user where user='userflaskmovie' \G;
*************************** 1. row ***************************
                  Host: %
                  User: userflaskmovie
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
       References_priv: N
            Index_priv: N
            Alter_priv: N
          Show_db_priv: N
            Super_priv: N
 Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string: *1F31DAC15FBB9CBB8993D317275DC22CE21D359E
      password_expired: N
 password_last_changed: 2018-10-23 13:19:54
     password_lifetime: NULL
        account_locked: N
1 row in set (0.00 sec)

mysql> update mysql.user set authentication_string=password('userflaskmovie') where user='userflaskmovie' and host='%';
Query OK, 0 rows affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 0  Warnings: 1
mysql> show warnings;
+---------+------+-------------------------------------------------------------------+
| Level   | Code | Message                                                           |
+---------+------+-------------------------------------------------------------------+
| Warning | 1681 | 'PASSWORD' is deprecated and will be removed in a future release. |
+---------+------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

添加用户DjangoProjecDBtUser访问mysql的DB-DjangoProjec数据库

创建数据库DB-DjangoProjec

mysql> create database DB-DjangoProjec;

创建用户

mysql> create user 'DjangoProjecDBtUser'@'%' identified by 'DjangoProjecDBtUser';

分配数据库权限

mysql> grant all privileges on `DB-DjangoProjec`.* to 'DjangoProjecDBtUser'@'%' identified by 'DjangoProjecDBtUser';
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)



mysql> show grants for DjangoProjecDBtUser;
+------------------------------------------------------------------------+
| Grants for DjangoProjecDBtUser@%                                        |
+------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'DjangoProjecDBtUser'@'%'                         |
| GRANT ALL PRIVILEGES ON `DB-DjangoProjec`.* TO 'DjangoProjecDBtUser'@'%' |
+------------------------------------------------------------------------+
2 rows in set (0.00 sec)

创建完成后测试正常连接就行

连接方式

image.png
>mysql -h xxx.xxx.xxx.xxx -P 30306 -u userflaskmovie -p
Enter password: **************
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| flaskmovie         |
+--------------------+
2 rows in set (0.01 sec)

数据默认存储

/usr/bin                 客户端程序和脚本
/usr/sbin                mysqld 服务器
/var/lib/mysql           日志文件,数据库  [重点要知道这个]
/usr/share/doc/packages  文档
/usr/include/mysql       包含( 头) 文件
/usr/lib/mysql           库
/usr/share/mysql         错误消息和字符集文件
/usr/share/sql-bench     基准程序

相关文章

  • Ubuntu16.04安装mysql5.7及配置远程访问

    我的博客,欢迎阅读 https://blog.starmeow.cn 服务器上Ubuntu16.04上进行安装 安...

  • Jupyter Notebook

    介绍、安装及使用教程Jupyter Notebook 远程访问配置

  • Centos7 yum安装MySQL5.7

    MySQL5.7 增加用户,新建数据库,授权,远程访问 1.安装yum repo 2.安装MySQL5.7(如果遇...

  • Mysql基本操作

    环境:Ubuntu16.04 配置Mysql远程访问 编辑配置文件sudo vi /etc/mysql/mysql...

  • 环境 | ubuntu16.04+cuda8.0+cuDnn5.

    0 笔记本配置 ubuntu16.04 基本软件安装: 环境|ubuntu16.04系统安装及基本软件配置 CPU...

  • docker - 通过 restAPI 访问

    docker 安装请参考: docker - 环境搭建 修改配置 默认不支持远程访问, 需要修改配置以开启远程访问...

  • Ubuntu上安装Mysql

    Ubuntu上安装Mysql 安装Mysql 配置Mysql 检查mysql服务状态 配置远程访问 修改权限 执行...

  • Ubuntu 快速搭建docker环境

    目前使用Ubuntu16.04 作为服务器系统,下面介绍docker环境的安装和配置 安装docker :访问官网...

  • Docker 安装 MySQL

    本篇将介绍如何使用 Docker 部署 MySQL 数据库及远程访问配置 安装 MySQL 拉取镜像 使用下面的命...

  • SSH远程访问

    简介 SSH服务器,可以通过SSH协议来访问远程服务器。 安装配置 安装 配置访问vi /etc/ssh/sshd...

网友评论

      本文标题:Ubuntu16.04安装mysql5.7及配置远程访问

      本文链接:https://www.haomeiwen.com/subject/skyptqtx.html