您现在的位置是:网站首页> 编程资料编程资料

CentOS8下MySQL 8.0安装部署的方法_Mysql_

2023-05-27 283人已围观

简介 CentOS8下MySQL 8.0安装部署的方法_Mysql_

MySQL 8正式版8.0.11已发布,官方表示MySQL8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL 5.7 vs 8.0,哪个性能更牛?

Mysql8.0安装 (YUM方式)

1、首先删除系统默认或之前可能安装的其他版本的mysql

 # for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done # rm -rf /var/lib/mysql && rm -rf /etc/my.cnf 

2、安装Mysql8.0 的yum资源库

 mysql80-community-release-el7-1.noarch.rpm # yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、安装Mysql8.0

 # yum install mysql-community-server #启动MySQL服务器和MySQL的自动启动 # systemctl start mysqld # systemctl enable mysqld # systemctl status mysqld 

在这里插入图片描述

 [root@localhost opt]# netstat -lantp | grep 3306 tcp6 0 0 :::33060 :::* LISTEN 25431/mysqld tcp6 0 0 :::3306 :::* LISTEN 25431/mysqld [root@localhost opt]# ps -aux | grep mysqld mysql 25431 0.8 17.2 1776932 350232 ? Ssl 16:24 0:01 /usr/sbin/mysqld root 25672 0.0 0.0 112828 980 pts/1 S+ 16:28 0:00 grep --color=auto mysqld 

在这里插入图片描述

登录报错

在这里插入图片描述

跳过密码登录,添加skip-grant-tables,然后重启MySQL服务。

 [root@localhost opt]# vim /etc/my.cnf [mysqld] skip-grant-tables [root@localhost opt]# systemctl restart mysqld [root@localhost opt]# mysql 

在这里插入图片描述

在这里插入图片描述

用sql来修改root的密码

进入到终端当中,敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

 mysql> update user set password=password("你的新密码") where user="root"; 或者 mysql> set password for 'username'@'host' = password('newpassword') mysql> flush privileges; mysql> quit 

在这里插入图片描述

注意
set password for ‘username'@‘host' = password(‘newpassword') 命令修改新的密码。

如果在执行该步骤的时候出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误。则执行下 flush privileges 命令,再执行该命令即可。

注意:如果在执行该步骤的时候出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误。则执行下 flush privileges 命令,再执行该命令即可。

4、使用默认密码初次登录后, 必须要重置密码

 查看默认密码, 如下默认密码为"e53xDalx.*dE" [root@DB-node01 ~]# grep 'temporary password' /var/log/mysqld.log 2019-03-06T01:53:19.897262Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: e53xDalx.*dE [root@DB-node01 ~]# mysql -pe53xDalx.*dE ............ mysql> select version(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

报错提示必须要重置初始密码, 下面开始重置mysql登录密码(注意要切换到mysql数据库,使用use mysql)

 mysql> use mysql; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 

这个其实与validate_password_policy的值有关, mysql8.0更改了validate_password_policy相关的配置名称, 这跟Mysql5.7有点不一样了.

 mysql> set global validate_password.policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password.length=1; Query OK, 0 rows affected (0.00 sec) 

在这里插入图片描述

接着再修改密码

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.05 sec) mysql> flush privileges; Query OK, 0 rows affected (0.03 sec) 

退出, 重新使用新密码登录mysql

 # mysql -p123456 ........... mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.15 | +-----------+ 1 row in set (0.00 sec) 

查看服务端口

 mysql> show global variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 1 row in set (0.01 sec) 

在这里插入图片描述

查看mysql连接的授权信息

 mysql> select host,user,password from mysql.user; ERROR 1054 (42S22): Unknown column 'password' in 'field list' 

在这里插入图片描述

上面这是mysql5.6及以下版本的查看命令, mysql5.7之后的数据库里mysql.user表里已经没有password这个字段了,password字段改成了authentication_string。

 mysql> select host,user,authentication_string from mysql.user; +-----------+------------------+------------------------------------------------------------------------+ | host | user | authentication_string | +-----------+------------------+------------------------------------------------------------------------+ | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | root | $A$005${7J0=4Dc7Jym8eI/FU4jimKWFvkD9XmoAkF1ca5.Un0bc6zgmPtU.0 | +-----------+------------------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec) 

在这里插入图片描述

mysql8.0修改用户密码命令

 mysql> use mysql; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; mysql> flush privileges; 

Mysql8.0安装 (二进制方式)

1、首先删除系统默认或之前可能安装的其他版本的mysql

 [root@mysql8-node ~]# for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done [root@mysql8-node ~]# rm -rf /var/lib/mysql && rm -rf /etc/my.cnf

2、安装需要的软件包

 [root@mysql8-node ~]# yum -y install libaio [root@mysql8-node ~]# yum -y install net-tools 

3、下载并安装Mysql8.0.12

 [root@mysql8-node ~]# groupadd mysql [root@mysql8-node ~]# useradd -g mysql mysql [root@mysql8-node ~]# cd /usr/local/src/ [root@mysql-node src]# ll -rw-r--r-- 1 root root 620389228 Aug 22 2018 mysql8.0.12_bin_centos7.tar.gz [root@mysql-node src]# tar -zvxf mysql8.0.12_bin_centos7.tar.gz [root@mysql-node src]# mv mysql /usr/local/ [root@mysql-node src]# chown -R mysql.mysql /usr/local/mysql [root@mysql-node src]# vim /home/mysql/.bash_profile export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH [root@mysql-node src]# source /home/mysql/.bash_profile [root@mysql-node src]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@mysql-node src]# source /etc/profile 

4、创建数据目录

 [root@mysql-node src]# mkdir -p /data/mysql/{data,log,binlog,conf,tmp} [root@mysql-node src]# chown -R mysql.mysql /data/mysql 

5、配置mysql

 [root@mysql-node src]# su - mysql [mysql@mysql-node ~]$ vim /data/mysql/conf/my.cnf [mysqld] lower_case_table_names = 1 user = mysql server_id = 1 port = 3306 default-time-zone = '+08:00' enforce_gtid_consistency = ON gtid_mode = ON binlog_checksum = none default_authentication_plugin = mysql_native_password datadir = /data/mysql/data pid-file = /data/mysql/tmp/mysqld.pid socket = /data/mysql/tmp/mysqld.sock tmpdir = /data/mysql/tmp/ skip-name-resolve = ON open_files_limit = 65535 table_open_cache = 2000 #################innodb######################## innodb_data_home_dir = /data/mysql/data innodb_data_file_path = ibdata1:512M;ibdata2:512M:autoextend innodb_buffer_pool_size = 12000M innodb_flush_log_at_trx_commit = 1 innodb_io_capacity = 600 innodb_lock_wait_timeout = 120 innodb_log_buffer_size = 8M innodb_log_file_size = 200M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 85 innodb_read_io_threads = 8 innodb_write_io_threads = 8 innodb_thread_concurrency = 32 innodb_file_per_table innodb_rollback_on_timeout innodb_undo_directory = /data/mysql/data innodb_log_group_home_dir = /data/mysql/data ###################session########################### joi
                
                

-六神源码网