zoukankan      html  css  js  c++  java
  • MySQL之六——Linux下安装MySQL及远程连接MySQL

    安装方式一:通过下载官方安装包安装

    由于Linux安装MySQL会遇到各种依赖问题,本博文整理了下安装方放,避免遇到依赖问题

    查看是否自带mariadb
    rpm -qa|grep mariadb
    然后卸载
    rpm -e packagename  --nodeps
    下载完整rpm包:
    https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
    然后解压:
    tar -xvf https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
    然后先yum安装一下net-tools库:yum -y install net-tools*
    rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
    [root@jordy rpm]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
    warning: mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
            libaio.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
            libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
            libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
    看到报错了,是缺少libaio库:wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
    然后安装该库: rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm

    然后yum 安装 net-tools* 库

    groupadd mysql

    useradd -g mysql mysql
    到了官方文档时间段了,看下图,图中英文翻译过来就是:
    在Unix和Unix系列系统中,有一点是很重要的,那就是确保数据库目录与文件的所有者为mysql登录账户,
    以便在你运行mysqld服务的时候,mysql服务可以对这些目录和文件进行读取与写入操作。
    如果你是以root身份运行mysqld服务,就需要确认一下,执行如下面显示的包含有--user选项的命令:
    shell> bin/mysqld --initialize --user=mysql
    shell> bin/mysqld --initialize-insecure --user=mysql
    另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。
    所以我在前面提到过添加mysql用户和mysql用户组,当然这步操作可做可不做。通过官方文档我们可以知道,
    如果我是root身份登录Linux系统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。
    如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。
    初始化mysql:
    mysqld --initialize --user=mysql
    启动mysql
    systemctl  start  mysqld
    查看刚刚初始化生成的临时密码:
    vim /var/log/mysqld.log 
    *rajC8ykZ:5y
    然后登录mysql
    mysql -u root -p
    登录后> 
    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    要求重置密码:
    则重置设置下密码,比如111111
    >SET PASSWORD = PASSWORD('111111');
    >ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    >flush privileges;
    但是报错:
    mysql> SET PASSWORD = PASSWORD('123456');
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PASSWORD('111111')' at line 1
    mysql> 

    那直接按提示alter吧:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'tangtang';

    然后就开始使用吧;

    create database study;

    use  study;

    CREATE TABLE `t_users` (    
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',    
    `account` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录账号',    
    `passwd` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录密码',    
    `salt` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '注册时生成的salt',    
    `nick` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户昵称',    
    `truename` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '真实姓名',    
    `headimg` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户头像地址', 
    UNIQUE KEY `id` (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

    在客户端连接远程服务器是,若遇到的如下错误:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 

    这是因为即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式,我用的mysql8.0,于是就遇到了这个问题。

    解决办法:
    mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root账户密码' ;  意为使用旧的认证方式。

    mysql 新建用户并赋予远程访问权限

    [root@demo /]# mysql -u root -p #登录服务器数据库

    Enter password:123xxx

    #1.创建一个新用户 testuser 密码为 testuserpass

    CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testuserpass';

    #2.创建数据库testDB

    create database testDB;

    #3.执行命令为testuser用户添加使用testDB权限

    grant all privileges on testDB.* to testuser@localhost identified by 'testuserpass';

    #4.执行命令,为testuser用户添加远程访问权限

    GRANT ALL PRIVILEGES ON testDB.* TO 'testuser'@'%' IDENTIFIED BY 'testuserpass' WITH GRANT OPTION;

    #5.刷新权限表

    flush privileges;

    回收权限

    revoke all on information_schema.* from 'testuser'@'%' ;

    安装方式二:通过docker安装(墙裂推荐) 

    1、拉取官方的最新版本的镜像:

    $ docker pull mysql:latest

    2、运行容器

    $ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

    参数说明:

    • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
    • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

    通过 docker ps 命令查看是否安装成功:

    转载自https://www.cnblogs.com/feng0815/p/14041558.html

  • 相关阅读:
    北京燃气IC卡充值笔记
    随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?
    量化交易平台大全
    Doctor of Philosophy in Computational and Mathematical Engineering
    Institute for Computational and Mathematical Engineering
    Requirements for the Master of Science in Computational and Mathematical Engineering
    MSc in Mathematical and Computational Finance
    万字长文:详解多智能体强化学习的基础和应用
    数据处理思想和程序架构: 使用Mbedtls包中的SSL,和服务器进行网络加密通信
    31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)
  • 原文地址:https://www.cnblogs.com/R-bear/p/15031619.html
Copyright © 2011-2022 走看看