精华内容
下载资源
问答
  • Deepin安装MySQL8
    千次阅读
    2019-06-19 18:52:42

    官方网站给出了多种安装方式, 如源码安装,压缩包安装, 二进制安装(如.deb文件). 尽管可以通过包管理器 (如apt,yum) 来安装, 可能安装的并不是最新版的. 如果使用官方仓库源, 也不能保证兼容性.

    因此这里使用压缩包方式安装MySQL8, 它适用于大多数发行版. 这里本系统为Deepin.

    1. 环境预处理: 安装前, 先删除原有mysql, 和配置,数据等文件, 如/etc/my.cnf/etc/mysql/

    2. MySQL依赖: mysql依赖于libaio库, 安装前先检查下是否已安装, 一般情况都有

      #检查是否已安装, 看是否提示已安装
      apt search libaio
      #安装
      apt install libaio1 #为啥多了个1? 因为仓库中名字就是这个..
      
    3. 下载: 通过浏览器下载, 地址:Download MySQL Community Server; 或使用curl下载, 如下所示

      curl -L  https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz -O
      
    4. 解压: 解压后, 可以凭自己喜好存于某个位置

      tar -xJvf Downloads/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
      
    5. 创建mysql用户: 官网建议, 以非root用户运行mysqld, 有助于安全性. 这里创建了mysql用户

      # 创建一个不能登录的系统用户mysql, 默认也创建了组
      useradd -r -s /bin/false mysql
      
    6. 初始化mysqld : 在这个过程中会建立root用户, 生成权限表等, 并存入数据目录中, 如果不存在会自动生成, 经测试为data目录, 而不是官方说的mysql-files(这是一个坑)! 初始化有以下两种方式:

      mysqld就是mysql服务端程序, 这里就是初始化该程序.

      下面我们会通过--user指定mysqld以mysql身份运行, 由于切换身份需要root权限, 所以还要加上sudo

      该数据目录是mysqld存放数据库等文件的地方, 此时该文件夹的拥有者为mysql, 也就是说mysqld以mysql身份运行时只能写该目录内的数据, 大大保证了安全性

      • --initialize: 生成root密码, 打印在控制台

        sudo bin/mysqld --initialize --user=mysql
        
      • -initialize-insecure: root账户无密码

        bin/mysqld --initialize-insecure --user=mysql
        
    7. 运行mysqld : 同样的, 以mysql身份运行, 这里的mysqld_safe一个启动mysqld方便的工具.

      sudo bin/mysqld_safe --user=mysql &
      
    8. 修改root密码: mysql是一个命令行客户端, 在bin目录下, 最好设置环境变量, 这里略.

      #root有密码的登录方式
      mysql -u root -p 
      #root无密码的登录方式
      mysql -u root --skip-password
      #进入后修改密码
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
      

      修改完后请关闭msyqld, 怎么关? 思路是使用ps的到进程号, kill杀死它

    9. 增加安全性(可选) : mysql提供了mysql_secure_installation脚本来配置msyqld安全方面的配置, 功能如

      • 设置root账户密码

      • 阻止外部访问root账户

      • 删除匿名用户

      • 等等

        使用后最直观感受是, 用户密码不能是简单的123456了, 必须复杂… 开发环境下不建议使用.

      #直接运行即可
      mysql_secure_installation
      
    10. 自启配置: 我们要自启的是mysqld, 但是我不熟悉它的配置, 但是它提供了一个mysql.server, 能够方便的开启和关闭mysqld. 该脚本被写死了, 它规定mysql必须存在于/usr/local/下, 目录名mysql, 这里我使用符号连接来解决:

      ln -s $PWD/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
      

      deepin使用systemd来管理启动程序的, 它兼容Sys V, 因此也可使用Sys V的方式来让mysql加入自启, 如:

      cp support-files/mysql.server /etc/init.d/mysql.server
      

      但新时代就用新方法, 这里通过Systemd的方式加入自启, 在/usr/lib/systemd/system/目录下创建配置文件mysqld.service

      [Unit]
      Description=MySQL Server
      After=network.target local-fs.target remote-fs.target
      
      [Service]
      Type=forking
      PIDFile=/usr/local/mysql/data/sidian-PC.pid
      ExecStart=/usr/local/mysql/support-files/mysql.server start
      ExecStop=/usr/local/mysql/support-files/mysql.server stop
      ExecReload=/usr/local/mysql/support-files/mysql.server restart
      User=mysql
      
      [Install]
      WantedBy=multi-user.target
      

      要注意点是, PIDFile的名字一般为你电脑的域名, 如我的sidian-PC, 通过hostname命令获取.

      User选项规定mysql以mysql身份运行.

      接下来启动它

      sudo systemctl enable mysqld.service # 加入自启
      sudo systemctl start mysqld.service # 现在启动mysqld
      

      大功告成!

    参考

    更多相关内容
  • Linux (centos8安装 MySQL 8 数据库(图文详细教程)

    千次阅读 多人点赞 2021-04-23 20:26:06
    我买了阿里云centos服务器,安装mysql8.0,做一笔记,以供大家使用。 本教程手把手教你如何在 Linux 安装 MySQL 数据库,以 CentOS 8为例。 1. 下载并安装 MySQL 官方的 Yum Repository wget ...

    我的公众号
    在这里插入图片描述

    今天2021年4月23日。我买了阿里云centos服务器,安装mysql8.0,做一笔记,以供大家使用。

    本教程手把手教你如何在 Linux 安装 MySQL 数据库,以 CentOS 8为例。

    1. 下载并安装 MySQL 官方的 Yum Repository

    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

    使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

    2、然后进行repo的安装:

    rpm -ivh mysql80-community-release-el7-1.noarch.rpm

    执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件 mysql-community.repo mysql-community-source.repo

    之后就开始安装MySQL服务器。

     yum install mysql-server

    这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

    Linux 安装 MySQL 8 数据库1.png
    Linux 安装 MySQL 8 数据库1.png

    2. MySQL数据库设置

    2.1. 设置不区分大小写

    vim /etc/my.cnf

    在[mysqld]下,添加以下内容

    #让MYSQL大小写敏感(1-不敏感,0-敏感)
    lower_case_table_names=1

    2.2. 启动MySQL

    systemctl start mysqld.service 

    2.3. 查看MySQL运行状态

    systemctl status mysqld.service
    Linux 安装 MySQL 8 数据库2.png
    Linux 安装 MySQL 8 数据库2.png

    2.4. 设置密码

    此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

    grep "password" /var/log/mysqld.log
    Linux 安装 MySQL 8 数据库3.png
    Linux 安装 MySQL 8 数据库3.png

    进入数据库:

    mysql -uroot -p

    输入刚刚上面的初始密码

    Linux 安装 MySQL 8 数据库4.png
    Linux 安装 MySQL 8 数据库4.png

    此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

    new password为你设置的root密码 这里有个问题,新密码设置的时候如果设置的过于简单会报错:

    Linux 安装 MySQL 8 数据库5.png Linux 安装 MySQL 8 数据库6.png

    尽量把密码设置复杂一些

    Linux 安装 MySQL 8 数据库7.png
    Linux 安装 MySQL 8 数据库7.png

    2.5. 设置远程访问

    此时不能远程访问,如Navicat访问不了

    Linux 安装 MySQL 8 数据库8.png居中

    2.5.1 开放端口

    (1)开放3306端口

    firewall-cmd --permanent --zone=public --add-port=3306/tcp

    (2)如果提示FirewallD is not running,如下图所示

    Linux 安装 MySQL 8 数据库9.png
    Linux 安装 MySQL 8 数据库9.png

    (3)通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

    Linux 安装 MySQL 8 数据库10.png
    Linux 安装 MySQL 8 数据库10.png

    (4)通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

    Linux 安装 MySQL 8 数据库11.png
    Linux 安装 MySQL 8 数据库11.png

    (5)再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

    Linux 安装 MySQL 8 数据库12.png
    Linux 安装 MySQL 8 数据库12.png

    (6)如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

    Linux 安装 MySQL 8 数据库13.png
    Linux 安装 MySQL 8 数据库13.png

    (7)再次执行firewall-cmd --permanent --zone=public --add-port=3306/tcp ,提示success,表示设置成功,这样就可以继续后面的设置了。

    Linux 安装 MySQL 8 数据库14.png
    Linux 安装 MySQL 8 数据库14.png

    (8)刷新

    firewall-cmd --reload
    Linux 安装 MySQL 8 数据库15.png
    Linux 安装 MySQL 8 数据库15.png

    2.5.2. root远程访问

    当防火墙开启后,Navicat访问出现如下图:

    Linux 安装 MySQL 8 数据库16.png
    Linux 安装 MySQL 8 数据库16.png

    (1)设置认证方式。 如果你没有设置认证方式,默认的密码加密方式是:caching_sha2_password,而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就会报错:

    client does not support  authentication protocol requested by server; consider upgrading MySQL client

    这里的错误信息就是不支持身份认证方式,没关系,编辑/etc/my.cnf(编辑命令:vim /etc/my.cnf)文件里面在[mysqld]下面加上这句话即可:

    default_authentication_plugin=mysql_native_password
    Linux 安装 MySQL 8 数据库17.png
    Linux 安装 MySQL 8 数据库17.png

    (2)登陆到mysql命令行:然后输入密码

    mysql -u root -p
    Linux 安装 MySQL 8 数据库18.png
    Linux 安装 MySQL 8 数据库18.png

    (3)进入之后选择mysql库,用户信息都存在这个库的user表中

    use mysql;
    select host, user, authentication_string, plugin from user;

    Linux 安装 MySQL 8 数据库19.png居中

    可以看到,用户对应的主机是localhost,而不是%,所以不能连接。 (4)授权root用户可以远程登陆

    update user set host='%' where user = 'root';
    flush privileges;
    Linux 安装 MySQL 8 数据库20.png
    Linux 安装 MySQL 8 数据库20.png

    (5)刷新权限

    flush privileges;
    Linux 安装 MySQL 8 数据库21.png
    Linux 安装 MySQL 8 数据库21.png

    2.6阿里云设置安全组需要开放3306端口

    安全组---配置规则---快速添加即可

    image-20210423200433985
    image-20210423200433985

    此时,数据库就已经安装配置好了。 如此详细的图文教程,你学会了吗?赶紧收藏并试试吧!

    2.7 2059错误的解决方案

    MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。

    执行

    show variables like 'default_authentication_plugin';
    select host,user,plugin from mysql.user;

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mima';
    flush privileges;
    image-20210423200747492
    image-20210423200747492
    image-20210423200806117
    image-20210423200806117

    原文链接https://geshanzsq.com/article/34

    展开全文
  • Linux 安装mysql8详细教程

    万次阅读 多人点赞 2020-03-19 22:24:33
    最近要使用窗口函数,但是要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤 本文以CentOS 7 为例,详细教你如何在Linux下安装MySQL-8.0.19 安装的mysql 版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar....

    最近要使用窗口函数,但是要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤

    本文以CentOS 7 为例,详细教你如何在Linux下安装MySQL-8.0.19

    安装的mysql 版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

    使用root权限操作

    第一步:下载



     两种方式

    1、

    进入官网 https://dev.mysql.com/downloads/mysql/

    上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。我们选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

    下载之后,通过ssh工具sftp/ftp方式上传到你服务器centos7指定的目录即可/usr/local/

    2、

     在你要放置安装包的目录下执行命令:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz


    第二步:解压并移动


    首先说一下,移动不是必须的,但是我后面的配置里有指定文件目录,并且在Mac上安装mysql 默认也会放到 /usr/local ,所有最好按我的来。

    xz格式拓展知识: tar  -Jxvf  mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

    1. 解压 xz 格式文件
     
    方法一:
    需要用到两步命令:
      首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,
      其次用 tar 命令将 linux-3.12.tar 完全解压。
    xz -d linux-3.12.tar.xz
    tar -xf linux-3.12.tar
    方法二(推荐)
    tar -Jxf linux-3.12.tar.xz
    
    2. 创建 xz 格式文件
    方法一:
    也是用到两步命令:
      首先利用 tar 命令将 linux-3.12 文件夹打包成 linux-3.12.tar
      其次用 xz-utils 的 xz 命令将 linux-3.12.tar 压缩成 linux-3.12.tar.xz。
    tar -cf linux-3.12.tar linux-3.12/
    xz -z linux-3.12.tar
    方法二(推荐)
    tar -Jcf linux-3.12.tar.xz linux-3.12/

    解压(如果是.xz格式可以使用  tar  -Jxvf  mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz)

    tar -zxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.gz

    移动(若上传的地方不是/uar/local/路径可以用mv命令移动)

    mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/

    1 重命名(改名和软连接,二选一

    mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql8

    或者使用
    2 想弄软连接命令 : 

    ln -s mysql-8.0.19-linux-glibc2.12-x86_64 mysql8


    第三步:创建 用户,并给数据目录赋予权限


    创建mysql组和用户

    groupadd mysql useradd -r -g mysql mysql

    创建mysql数据目录 / 回到根目录

    cd / && mkdir -p /data/mysql8_data/

    赋予权限

    chown mysql:mysql -R /data/mysql8_data
    chmod 750 /data/mysql8_data/ -R

    为了避免在使用MySQL时总是必须键入客户端程序的路径名,可以将/usr/local/mysql/bin 目录添加到PATH变量中:

    export PATH=$PATH:/usr/local/mysql8/bin

     


    第四步:my.cnf配置参数

    创建用于初始化mysql数据库时my.cnf配置文件

    默认读取配置文件的顺序:
    Default options are read from the following files in the given order:
    1. /etc/my.cnf 2./etc/mysql/my.cnf  3./usr/local/mysql/etc/my.cnf  4.~/.my.cnf

    vim /etc/my.cnf然后 按 i 进入编辑模式,把下面内容复制进去

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8mb4
    [client]
    port       = 3306
    socket     = /tmp/mysql.sock
    
    [mysqld]
    port       = 3306
    server-id  = 3306
    user       = mysql
    socket     = /tmp/mysql.sock
    # 设置mysql的安装目录
    basedir    = /usr/local/mysql8
    # 设置mysql数据库的数据的存放目录
    datadir    = /data/mysql8_data/mysql
    log-bin    = /data/mysql8_data/mysql/mysql-bin
    innodb_data_home_dir      =/data/mysql8_data/mysql
    innodb_log_group_home_dir =/data/mysql8_data/mysql
    #设置mysql数据库的日志及进程数据的存放目录
    log-error =/data/mysql8_data/mysql/mysql.log
    pid-file  =/data/mysql8_data/mysql/mysql.pid
    # 服务端使用的字符集默认为8比特编码
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit =1
    
    ##################以上要修改的########################
    skip-external-locking
    key_buffer_size = 256M
    max_allowed_packet = 1M
    table_open_cache = 1024
    sort_buffer_size = 4M
    net_buffer_length = 8K
    read_buffer_size = 4M
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 64M
    thread_cache_size = 128
    
    #query_cache_size = 128M
    tmp_table_size = 128M
    explicit_defaults_for_timestamp = true
    max_connections = 500
    max_connect_errors = 100
    open_files_limit = 65535
    
    binlog_format=mixed
    
    binlog_expire_logs_seconds =864000
    
    # 创建新表时将使用的默认存储引擎
    default_storage_engine = InnoDB
    innodb_data_file_path = ibdata1:10M:autoextend
    innodb_buffer_pool_size = 1024M
    innodb_log_file_size = 256M
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
    transaction-isolation=READ-COMMITTED
    
    [mysqldump]
    quick
    max_allowed_packet = 16M
    
    [myisamchk]
    key_buffer_size = 256M
    sort_buffer_size = 4M
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeout

    编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 :wq!

    第五步:初始化mysql

    cd  /usr/local/mysql8/bin
    #一行
    ./mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize 

    参数说明

    --defaults-file=/usr/local/etc/my.cnf 指定配置文件(一定要放在最前面,至少 --initialize 前面)
    --user=mysql 指定用户(很关键)
    --basedir=/usr/local/mysql/ 指定安装目录
    --datadir=/usr/local/mysql/data/ 指定初始化数据目录

    1.1 
    --initialize 初始化生成临时密码
    临时密码登录
    mysql -u root -p
    输入服务器在初始化序列期间生成的随机临时密码:
    1.2
    --initialize-insecure 初始化时无密码
    无密码登录
    mysql -u root --skip-password
    
    2.
    ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码';
    flush privileges; #刷新权限
    #首次改密推荐使用本地密码插件with mysql_native_password
    3.创建访问用户及主机ip
    如果你配置时使用了skip_name_resolve,要创建一下127.0.0.1用户及主机ip
    CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '你的新密码';
    创建远程访问用户任意ip
    CREATE USER 'root'@'%' IDENTIFIED BY '你的新密码';

     

    查看mysql.log初始密码,复制出来
    cat /data/mysql8_data/mysql/mysql.log


    第六步:启动mysql,并更改root 密码


    启动

    安全后台启动:(如果您的安装包含mysqld_safe,则像这样启动MySQL服务器)

    bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
    ./mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

    如果您的安装包含systemd支持,请按以下方式启动服务器:

    1. systemctl {start|stop|restart|status} mysqld
    对于systemctl或 service命令,如果MySQL服务名称不是mysqld,请使用适当的名称。例如,
    使用mysql而不是 mysqld在基于Debian的系统和SLES系统上使用。
    修改配置文件时:
    systemctl daemon-reload
    systemctl restart mysqld
    
    2. 使用与System V系统兼容的service命令(具有相反的参数):
    service mysqld {start|stop|restart|status}

    查看是否启动

    ps -ef|grep mysql #查看mysql 进程
    
    netstat -ano |grep "3306" #查看3306端口

    更改密码
    提示输入密码,把刚才临时的密码粘过来。

    cd /usr/local/mysql8/bin
     ./mysql -u root -p
    password:输入临时密码
    
    2.无密码时登录
    ./mysql -u root --skip-password

    然后执行修改密码与root用户,主机host ip,并刷新权限

    1 修改新密码123456:
    ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码';
    flush privileges; #刷新权限
    #首次改密推荐使用本地密码插件with mysql_native_password
    
    use mysql;
    select user,host,plugin,authentication_string from user;
    CREATE user 'root'@'%'; #创建用户任意远程访问
    alter user 'root'@'%' identified with mysql_native_password by '123456'; #修改密码
    grant all privileges on *.* to "root"@"%"; #给用户授权
    flush privileges; #刷新权限
    更改具体用户远程访问
    CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456'; 创建'root'@'127.0.0.1'用户
    flush privileges; #===> 记住刷新权限
    select user,host,plugin,authentication_string from user;
    
    ===============57以后===================
    update user set authentication_string=password("test") where user='root';
    update mysql.user set host='你要指定的主机ip' where user='root';
    ============以下5.7以前======================
    2 或者
    SET PASSWORD = PASSWORD('123456');
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    flush privileges;
    select user,host,plugin,authentication_string from user;
    #退出mysql>
    quit;或者exit;
    #关闭mysql
    shutdown;
    修改MySQL用户密码
    mysqladmin -u用户名 -p旧密码 password 新密码
    
    3 或进入mysql命令行
    SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
    flush privileges;

    添加帐户,分配特权和删除帐户 

    use mysql;
    #创建新用户及密码
    CREATE USER 'root'@'localhost' IDENTIFIED with mysql_native_password  BY '新密码';
    FLUSH PRIVILEGES;
    CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password  BY '123456';
    FLUSH PRIVILEGES;
    CREATE USER 'mysql'@'%' IDENTIFIED with mysql_native_password  BY '123456';
    CREATE USER 'test'@'%' IDENTIFIED with mysql_native_password  BY '123456';
    #给用户授权
    GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
    GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
    GRANT ALL ON *.* TO 'mysql'@'%' WITH GRANT OPTION;
    GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    select user,host,plugin,authentication_string from user;
    #撤消test数据库级特权
    REVOKE CREATE,DROP ON test.* FROM 'test'@'%';
    FLUSH PRIVILEGES;
    #删除帐户
    DROP USER 'test'@'%';
    FLUSH PRIVILEGES;

    创建远程访问新用户并授权:

    use mysql;
    #mysql8==>不允许<==授权并创建用户了,要分开使用
    grant all privileges on *.* to '新用户名'@'%' identified by '密码' with grant option;
    grant all privileges on *.* to '新用户名'@'指定ip' identified by '密码' with grant option;
    例如:以前使用
    grant all privileges on *.* to 'root'@'%' identified by "123456" with grant option;
    mysql8分开操作为:
    CREATE ROLE 'root'@'%'; #创建角色CREATE USER 'root'@'%' IDENTIFIED BY '123456';
    ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456'; #修改密码
    grant all privileges on *.* to "root"@"%"; #给角色授权
    flush privileges; #刷新权限
    
    #另外修改主机
    update mysql.user set host='具体要指定的主机ip' where user='root';
    RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; #重命名
    flush privileges; #刷新权限
    select user,host,authentication_string from user;

    注意:

    1.确保用户名和密码正确

    2.确保开放3306端口 并开启防火墙service iptables start

    到这里就结束了,如果想退出mysql>quit或者exit ,关闭mysql 执行 service mysqld stop

    创建开机自启动mysql服务

    #确保my.cnf在路径/etc/my.cnf 
    cd /usr/local/mysql8/
     cp support-files/mysql.server /etc/rc.d/init.d/mysqld #错误 unit not found
     chmod +x /etc/init.d/mysql
     chkconfig --add mysqld 
     chkconfig --level 345 mysqld on
    
    cd /usr/local/mysql8/
    cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    启动:service mysqld start
    停止:service mysqld stop
    重启:service mysqld restart
    重载配置:service mysqld reload

    注意事项:

    如果以上步骤有权限问题,可执行以下命令,还有把开启自起打开

    出现unit not found 可以检查/etc/init.d/mysql是否存在,若否,
    find / -name mysql.server 
    cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql
    cp ./support-files/mysql.server /etc/init.d/mysqld
    chown 777 /etc/my.cnf 
    chmod +x /etc/init.d/mysqld 
    还有在安装前如果你的系统有Mariadb,就要卸载

    第一条命令用来查看,如果有就用下面的命令卸载

    rpm -qa|grep mariadb
    rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 #查询出的版本

    窗口函数:

    https://dev.mysql.com/doc/refman/8.0/en/window-functions.html

    mysql8部分删除内容:

    • 与帐户管理相关的以下功能已删除:

      • 使用GRANT创建用户。而是使用CREATE USER。遵循这种做法会使 NO_AUTO_CREATE_USERSQL模式对GRANT 语句不重要,因此也将其删除,并且当sql_mode选项文件中选项的该值的存在阻止mysqld启动时,现在会将错误写入服务器日志。

      • 使用GRANT修改不是权限指派其他帐户属性。这包括身份验证,SSL和资源限制属性。而是在创建帐户时使用CREATE USER或在之后使用修改这些 属性ALTER USER

      • IDENTIFIED BY PASSWORD 'auth_string'CREATE USER 和的 语法GRANT。而是使用 for 和 ,其中 值的格式与命名插件兼容。 IDENTIFIED WITH auth_plugin AS 'auth_string'CREATE USERALTER USER'auth_string'

        此外,由于IDENTIFIED BY PASSWORD删除了语法,因此 log_builtin_as_identified_by_password 系统变量是多余的,并且已删除。

      • PASSWORD()功能。此外,PASSWORD()删除意味着 语法不再可用。 SET PASSWORD ... = PASSWORD('auth_string')

      • old_passwords系统变量。

    • 查询缓存已删除。删除包括以下项目:

      • FLUSH QUERY CACHE和 RESET QUERY CACHE语句。

      • 这些系统变量: query_cache_limit, query_cache_min_res_unit, query_cache_size, query_cache_type, query_cache_wlock_invalidate

      • 这些状态变量: Qcache_free_blocks, Qcache_free_memory, Qcache_hits, Qcache_inserts, Qcache_lowmem_prunes, Qcache_not_cached, Qcache_queries_in_cache, Qcache_total_blocks

      • 这些线程状态:checking privileges on cached querychecking query cache for queryinvalidating query cache entriessending cached result to clientstoring result in query cacheWaiting for query cache lock

      • SQL_CACHE SELECT修改。

      这些不赞成使用的查询缓存项仍然不赞成使用,但没有效果,将在以后的MySQL版本中删除:

      • SQL_NO_CACHE SELECT 修饰符。

      • ndb_cache_check_time系统变量。

      have_query_cache系统变量保持过时,总有一个价值 NO,并会在将来的MySQL版本中删除。

    • 数据字典提供有关数据库对象的信息,因此服务器不再检查数据目录中的目录名称以查找数据库。因此, --ignore-db-dir选项和 ignore_db_dirs系统变量是多余的并被删除。

    • DDL日志(也称为元数据日志)已被删除。从MySQL 8.0.3开始,此功能由数据字典innodb_ddl_log表处理 。请参阅 查看DDL日志

    • tx_isolation和 tx_read_only系统变量已被删除。使用transaction_isolation和 transaction_read_only代替。

    • sync_frm系统变量已被删除,因为.frm文件已经过时。

    • secure_auth系统变量和 --secure-auth客户端选项已被删除。C API函数的MYSQL_SECURE_AUTH选项mysql_options()已删除。

    • multi_range_count系统变量被移除。

    • log_warnings系统变量和 --log-warnings服务器选项已被删除。请改用 log_error_verbosity系统变量。

    • sql_log_bin系统变量 的全局范围 已删除。sql_log_bin仅具有会话作用域,@@GLOBAL.sql_log_bin应调整依赖于访问的应用程序 。

    • metadata_locks_cache_size和 metadata_locks_hash_instances系统变量被删除。

    • 未使用date_format, datetime_format, time_format,和 max_tmp_tables系统变量被删除。

    • 这些弃用兼容性SQL模式被移除: DB2MAXDB, MSSQLMYSQL323, MYSQL40ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS。它们不能再分配给sql_mode系统变量或用作mysqldump --compatible选项的允许值 。

      删除MAXDB意味着将或 的 TIMESTAMP数据类型 视为 ,而不再视为。 CREATE TABLEALTER TABLETIMESTAMPDATETIME

    • 子句 的不推荐使用ASC或 DESC限定符将GROUP BY被删除。先前依赖于GROUP BY排序的查询所产生的结果可能与以前的MySQL版本不同。要产生给定的排序顺序,请提供一个ORDER BY 子句。

    • 该语句的EXTENDED和 PARTITIONS关键字 EXPLAIN已删除。这些关键字是不必要的,因为它们的效果始终处于启用状态。

    • 这些与加密有关的项目已删除:

      • ENCODE()和 DECODE()功能。

      • ENCRYPT()功能。

      • DES_ENCRYPT(),和 DES_DECRYPT()功能的 --des-key-file选项, have_crypt系统变量,则 DES_KEY_FILE该选项 FLUSH语句和 HAVE_CRYPT CMake的 选项。

      代替删除的加密功能:对于 ENCRYPT(),请考虑SHA2()改为使用 单向哈希。对于其他,请考虑使用 AES_ENCRYPT()和 AES_DECRYPT()代替。

    展开全文
  • CentOS7 安装 mysql8

    万次阅读 多人点赞 2018-04-22 18:56:23
    本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结:CentOS7 安装mysql8 步骤;window下的Navicat 连接MySql8;涉及到的Linux命令--------------------------------------------------------------...

    本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结:

    • CentOS7 安装mysql8 步骤;
    • window下的Navicat 连接MySql8;
    • 涉及到的Linux命令

    ------------------------------------------------------------------------------------------------------------------

    第一部分 CentOS7安装mysql

    1.1 安装前清理工作;

    1.1.1 清理原有的mysql数据库;

    使用以下命令查找出安装的mysql软件包和依赖包:

    rpm -pa | grep mysql

    显示结果如下:

    mysql80-community-release-el7-1.noarch
    mysql-community-server-8.0.11-1.el7.x86_64
    mysql-community-common-8.0.11-1.el7.x86_64
    mysql-community-libs-8.0.11-1.el7.x86_64
    mysql-community-client-8.0.11-1.el7.x86_64

    使用以下命令依次删除上面的程序

    yum remove mysql-xxx-xxx-

    删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

    find / -name mysql

    可能的显示结果如下:

    /etc/logrotate.d/mysql
    /etc/selinux/targeted/active/modules/100/mysql
    /etc/selinux/targeted/tmp/modules/100/mysql
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/bin/mysql
    /usr/lib64/mysql
    /usr/local/mysql
    

    根据需求使用以下命令 依次 对配置文件进行删除

    rm -rf /var/lib/mysql

    1.1.2 删除MariaDB的文件,

    由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.

    使用rpm 命令查找出要删除的mariadb文件;

    rpm -pa | grep mariadb

    可能的显示结果如下:

    mariadb-libs-5.5.56-2.el7.x86_64

    删除上面的程序

    rpm -e mariadb-libs-5.5.56-2.el7.x86_64

    可能出现错误提示如下:

    依赖检测失败:
    
    libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
    
    libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
    
    libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

    使用强制删除:

    rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

    至此就将原来有的mysql 和mariadb数据库删除了;


    1.2 安装mysql

    1.2.1 下面mysql官网提供的mysql repo源

    centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;

    mysql官网下载链接:mysql repo下载地址 如下:


    1.2.2 使用putty的pscp将文件上传到CentOS

    使用putty将F:盘下刚下好的mysql repo文件上传到Centos/usr/local/mysql文件夹下;

    D:\Putty>pscp F:\mysql80-community-release-el7-1.noarch.rpm root@192.168.145.136:/usr/local/mysql/

    1.2.3 安装 yum repo文件并更新 yum 缓存;

    rpm -ivh mysql57-community-release-el7-11.noarch.rpm

    执行结果:

    会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

    更新 yum 命令

    yum clean all
    yum makecache

    1.2.4 使用 yum安装mysql

    当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

    第一步: 查看mysql yum仓库中mysql版本,使用如下命令

    yum repolist all | grep mysql

    可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;

    第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态

    yum-config-manager --disable mysql80-community
    yum-config-manager --enable mysql57-community
    或者可以编辑 mysql repo文件,
    cat /etc/yum.repos.d/mysql-community.repo 

    将相应版本下的enabled改成 1 即可;

    1.2.5 安装mysql 命令如下:

    yum install mysql-community-server

    1.2.6 开启mysql 服务

    systemctl start mysqld.service

    1.2.7 获取初始密码登录mysql

    mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

    cat /var/log/mysqld.log | grep password

    使用初始密码登录mysql

    mysql -u root -p 

    修改初始密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

    1.2.8 在防火墙中开启3306端口

    CentOS7默认使用的是firewall作为防火墙,我这里改为习惯常用的iptables防火墙

    第一步: 关闭firewall防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    systemctl mask firewalld.service

    第二步: 安装iptables防火墙

    yum install iptables-services -y

    第三步: 启动iptable防火墙

    systemctl enable iptables
    systemctl start iptables

    第四步: 编辑防火墙增加端口 防火墙文件位置为: /etc/sysconfig/iptables

    vim /etc/sysconfig/iptables

    在倒数第三行上增加

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


    第五步: 重启防火墙

    systemctl enable iptables.service
    systemctl start iptables.service

    1.2.9 将mysql 服务加入开机启动项,并启动mysql进程

    systemctl enable mysqld.service
    systemctl start mysqld.service
    

    常用mysql服务命令:

    登录mysql
    mysql -u username -p
    
    退出mysql 
    quit
    
    启动mysql
    systemctl start mysqld.service
    
    结束
    systemctl stop mysqld.service
    
    重启
    systemctl restart mysqld.service
    
    开机自启
    systemctl enable mysqld.service
    
    查看mysql版本
    select version();
    

    本节参考文档:

    参考文献1: centos安装mysql

    参考文献2: A Quick Guide to Using the MySQL Yum Repository


    ------------------------------------------------------------------------------------------------------------------

    第二部分 Navicat 连接 Mysql8

    2.1 开启mysql远程服务:

    2.1.1 修改mysql数据库下的user表中host的值

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

    mysql -u root -p
    use mysql;
    update user set host='%' where user='root';

    2.1.2 使用授权的方式

    赋予任何主机访问数据的权限

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES
    如果想myuser用户使用mypassword密码从任何主机连接到mysql服务器的话。
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    2.2 在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:

    Authentication plugin 'caching_sha2_password' cannot be loaded: 

    mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;

    我们可可以查看mysql 数据库中user表的 plugin字段;


    可以使用命令将他修改成mysql_native_password加密模式:

    update user set plugin='mysql_native_password' where user='root';

    再用Navicat链接 就可以链接成功;

     

    本节参考文献:

    参考文献1: mysql开启远程的两种方式

    参考文献2:初次安装mysql遇到的问题


    ------------------------------------------------------------------------------------------------------------------

    第三部分:安装过程中涉及到的Linux命令学习;

    3.1 rpm


    3.2 putty 上传文件 pscp命令;

        在window机上CD进入pttty安装目录:

        cd :\program files (x86)\Putty

        将本地文件拷贝到Linux上:pscp 文件 用户名@LinuxIP:目录

        pscp hello.txt root@192.168.145.135:/tmp/userfile/

        将本地文件夹 拷贝到Linux上:pscp  -r 目录 用户名@LinuxIP:目录

       pscp -r c:\file root@10.43.65.98:/root/testFolder  

        将Linux上的文件\root\test.txt拷贝到本地C盘src文件夹,如下:

       pscp root@abc_pc:/root/test.txt  C:\src  

    3.3 修改防火墙文件/etc/sysconfig/iptables


    3.4 systemctl命令
















    展开全文
  • linux安装mysql8 一步一步超详细教程

    千次阅读 2021-08-09 14:51:02
    1、到指定目录下下载安装包 ...3、解压mysql8, 通过xz命令解压出tar包(这里时间可能会久一点根据服务器性能决定请耐心等待) 然后通过tar命令解压出文件夹 xz -d mysql-8.0.20-linux-glibc2.12-x86_6...
  • Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1、上传或者下载mysql安装包 下载 推荐使用清华的镜像,下载速度非常的快 wget ...
  • 使用以下命令查找出安装mysql软件包和依赖包: rpm -pa | grep mysql 显示结果如下: mysql80-community-release-el7-1.noarch mysql-community-server-8.0.11-1.el7.x86_64 mysql-community-...
  • MySQL redhat7 安装mysql8

    万次阅读 2018-06-01 16:52:31
    vmware 装个 Redhat7 然后再装个mysql、 系统版本:rhel-server-7.4-x86_64 软件版本: mysql-8.0.11-1.el7.x86_64 系统自己找、 mysql下载地址:...
  • 1. 检查MYSQL是否已安装 yum list installed | grep mysql 如果有先卸载 # 格式 yum -y remove [包名] yum -y remove mysql-libs.x86_64 2. 下载MySQL官网的仓库文件 wget ...
  • linux下安装mysql8

    万次阅读 2022-01-09 21:07:12
    1. 创建软件目录 mkdir /usr/local/soft 2. 下载mysql 没有wget:yum install wget ...3. 安装mysql 移动到mysql目录:cd /usr/local/soft/mysql-8.0 1. 解压mysql :tar -zxJf mysql-8.0.20-linux-gli
  • 安装MySQL8,安装时初始化数据库失败

    万次阅读 多人点赞 2019-08-24 23:04:53
    解决办法:修改my.ini里的内容:error:注释掉datadir那一行;warring:把utf8改成utf8mb4 这里只说了我遇到的问题和解决办法,错误各种各样,希望我们都能不要着急慢慢来
  • 试验环境: ...linux下安装mysql这里有两种方式 1.基于rpm安装 2.完全手动安装 一、基于rpm方式安装 1.1 去mysql官网系在对应的rpm包 安装rpm: [root@localhost soft]# yum -y install mysql80-co...
  • CentOS7.5 安装MySQL8 tar

    千次阅读 2018-07-08 02:13:21
    1、查看是否安装mariadb 执行命令: [root@mysql ~]# rpm -qa | grep mariadb 显示: mariadb-libs-5.5.56-2.el7.x86_64 2、卸载mariadb 执行命令: [root@mysql ~]# rpm -e --nodeps mariadb-libs-...
  • linux yum安装mysql8

    千次阅读 2019-10-10 09:47:04
    如果linux 里面安装了docker ,建议使用docker安装mysql,可以参考我的docker安装mysql 8 并配置远程连接 如果linux 系统里直接安装 ,建议使用yum进行安装(ubuntu可以先安装yum) 如果安装在windows里面,可以...
  • 二、MySQL安装 三、mysql常用登录和快捷进入cmd操作 一、MySQL官网下载 (一)MySQL下载地址:https://dev.mysql.com/downloads/file/?id=476233点击打开链接 (二)下载压缩包到需要安装的电脑磁盘,解压后...
  • Docker下安装MySQL8与开启root远程访问

    千次阅读 2019-05-21 15:59:24
    1.docker search mysql #查询mysql版本 2.docker pull mysql:8.0.15 #拉取mysql 3.创建mysql容器 ...docker run -d -e TZ=“Asia/Shanghai” -p 3306:3306 --name mysql_8 -e MYSQL_ROOT_PAS...
  • centos 7 安装 mysql8 以及遇到的问题的解决 linux系统:centos7.4_64 mysql版本:mysql 8.x mysql 源的配置和下载 1、从官网(https://dev.mysql.com/downloads/repo/yum/)下载mysql源rpm安装包。(RPM是...
  • MySQL8安装详细步骤

    千次阅读 2022-01-11 10:39:43
    mysql8安装: 下载地址: MySQL :: MySQL Downloads 安装时选择社区版 点击社区服务器 (1)社区版和企业版的区别: 1、商业版本组织管理和测试环节控制更严格,稳定性方面,比社区版更...
  • MySQL 8 安装教程

    千次阅读 2018-09-17 16:57:16
    MySQL 8发布了 ,据说相比MySQL 5速度提升了2倍!今天来搞一搞MySQL 8。 一、下载MySQL 8 1,首先当然是下载安装包了,下载地址:点击下载MySQL 8 这个页面相信大家都熟悉,我就不多说了。 2,将下载的压缩包...
  • Windows10中同时安装MySQL5和MySQL8

    千次阅读 多人点赞 2019-07-02 15:47:40
    前言:在实际环境中不会同时安装两个数据库,但是在自己学习中就会用到两个数据库,一个工作使用,一个了解前沿技术。...进入是下载MySQL8 点击previous获取以前MySQL版本,下载MySQL5 二、下载下...
  • CentOS下安装Mysql 8.0步骤详解

    千次阅读 2021-01-27 05:41:32
    本次安装Mysql的CentOS版本是7.71.下载Mysql首先去Mysql官网下载安装包,网址https://dev.mysql.com/downloads/mysql/推荐大家下载Linux通用版本的,便于管理安装位置,也方便一台服务器安装多个版本的mysql,下载后...
  • CentOS8 安装MySql 8.0教程

    千次阅读 2020-07-20 19:00:24
    Mysql官方下载 将下载好的文件上传至服务器 /usr/local/tools tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0.21 添加系统用户组和用户 groupadd ...
  • MySQL 8.0.19安装教程(windows 64位)

    万次阅读 多人点赞 2018-08-15 18:05:05
    话不多说直接开干 ...4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...
  • CentOS 8安装Mysql8并设置开机自启动

    千次阅读 2019-11-29 13:17:47
    0. 看起来mysql又提供yum安装了。 yum install mysql-server 后面的没时间可以不看了。 先要安装wget yum -y install wget 1.下载rpm安装文件 wget http://repo.mysql.com/mysql-community-release-el7.rpm ...
  • 1.官网下载 mysql文件。官网下载链接: https://dev.mysql.com/downloads/mysql/ 选择mysql下载的系统版本。 此处可以下载MSI安装包,图简单的朋友可以下载,然后“下一步”安装即可。 此处下载ZIP压缩包版(这次...
  • Mac安装mysql 8.0.21

    千次阅读 2020-07-18 11:49:54
    今天把MySQL安装了一下,用的是Macpro 网上5.X的安装方法已经不合适了,在cdsn上找到的最新版本安装,全程操作下来流畅,傻瓜操作,记录一下 附上安装过程的备注,同时感谢网友的无私贡献 1、首先登陆mysql官网...
  • CentOS8下通过yum安装mysql8.0.18

    千次阅读 2019-12-18 13:05:50
    CentOS8下通过YUM安装mysql8.0.11 用过rpm安装和yum安装,还是觉得yum安装最方便,下面是我的安装过程 检测系统是否自带安装 MySQL: rpm -qa | grep mysql 卸载安装 rpm -e mysql // 普通删除 rpm -e --nodeps ...
  • Linux服务器安装Mysql8.0数据库

    千次阅读 2019-09-03 17:14:07
    之前写过一篇文章记录linux服务器安装mysql数据库,安装完之后发现mysql是5.0版本。自己本机的mysql是8.0版本,导出的.sql文件在mysql5.0上一直报错。所以再重装下mysql8.0版本。 采用的是下载.rpm文件的方式安装~ ...
  • centos8安装mysql8.0.22教程(超详细)

    万次阅读 多人点赞 2021-01-11 16:58:46
    最近因为公司需求需要升级mysql版本到服务器(服务器系统使用centos8) ,mysql版本8.0.22。在安装过程中也遇到了很多坑,现在和大家分享如下: 安装步骤如下: 1.1 首先用xshell远程连接到服务器 1.2 如果服务器之前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,037,834
精华内容 415,133
关键字:

安装mysql8

mysql 订阅