参考http://tn.51cto.com/article/647

http://www.jb51.net/article/138787.htm

转载:

  1. 卸载centos自带的mariadb
  2. rpm -qa mariadb*
  3. rpm -e *** --nodeps
  4. 下载mysql 8.0的rpm完整包
  5. wget -O /tmp/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
  6. 解压出rpm包
  7. cd /tmp/
  8. tar xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
  9. yum安装一下net-tools库、perl
  10. yum -y install net-tools*
  11. yum -y install perl
  12. 新建用户和用户组
  13. groupadd mysql
  14. useradd -g mysql mysql
  15. 依次编译安装(顺序很重要,存在依赖关系)
  16. rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
  17. rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
  18. rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
  19. rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
  20. 初始化mysql
  21. mysqld --initialize --user=mysql
  22. 启动mysql
  23. systemctl start mysqld

  查看是mysql否启动

  inux上面:service mysqld status (可能不对,视情况换service mysql status)查看是否启动,或者netstat -tlunp|grep 3306
  windows上面:在“cmd”命令行里面输入“ netstat -an|find "3306",如果有这个说明开启了。

  1. 查看生成的密码
  2. vim /var/log/mysqld.log
  3. A temporary password is generated for root@localhost: yv)niz-9_E#M
  4. 登陆mysql
  5. mysql -u root -p
  6. 修改密码:
  7. ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  8. flush privileges;
  9. 至此MySQL 8.0 安装完成
  10. 开启mysql的远程登录
    1. 登录后
      show databases;
    2. use mysql; 用哪个数据库
    3. updata user set host='%' where user = root';
    4. select user,host from user;
    5. clip_image009
    6. clip_image010
       

11.防火墙操作

  启动一个服务:systemctl start firewalld.service

  关闭一个服务:systemctl stop firewalld.service

  重启一个服务:systemctl restart firewalld.service

  显示一个服务的状态:systemctl status firewalld.service

  在开机时启用一个服务:systemctl enable firewalld.service

  在开机时禁用一个服务:systemctl disable firewalld.service

  查看服务是否开机启动:systemctl is-enabled firewalld.service

  查看已启动的服务列表:systemctl list-unit-files|grep enabled

  查看启动失败的服务列表:systemctl --failed

12、端口操作

  1. 添加
  2. firewall-cmd --zone=public --add-port=/tcp --permanent(--permanent永久生效,没有此参数重启后失效)
  3. 重新载入
  4. firewall-cmd reload

13.添加远程特账号
   

  1.  mysql> create user root@'%' identified by '';
  2.     Query OK, rows affected (0.08 sec)
  3.  
  4.     mysql> grant all privileges on *.* to root@'%';
  5.     Query OK, rows affected (0.04 sec)
  6.  
  7.     mysql> flush privileges;
  8.     Query OK, rows affected (0.01 sec)
  9.  
  10. mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '';
  11.  
  12. mysql> exit

补充MySQL 8.0的特性:
1、新的系统字典表

整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储

2、支持DDL 原子操作

InnoDB表的DDL支持事务完整性,要么成功要么回滚,将DDL操作回滚日志写入到data dictionary 数据字典表 mysql.innodb_ddl_log 中用于回滚操作

3、安全和用户管理

新增caching_sha2_password认证插件,并且是默认的身份认证插件。性能和安全方面加强

权限支持role

新增密码历史记录功能,限制重复使用以前的密码

4、支持资源管理

支持创建和管理资源组,并允许将服务器运行的线程分配给特定的组,以便线程根据资源组可用的资源执行

5、innodb 增强

自增列优化,修复MySQL的bug#199,该bug导致在DB重启时,MySQL会将表上最大的自增值作为最大值,下次分配是分配max(id)+1,如果是归档表或者其它模式删除数据后,DB系统重启,自增值可能被重用

新增INFORMATION_SCHEMA.INNODB_CACHED_INDEXES,查看每个索引缓存在InnoDB缓冲池中的索引页数

InnoDB临时表都将在共享临时表空间ibtmp1中创建

对于SELECT ... FOR SHARE和SELECT ... FOR UPDATE语句,InnoDB支持NOWAIT和SKIP LOCKED

innodb_undo_tablespaces的最小值为2,并且不再允许将innodb_undo_tablespaces设置为0。 最小值2确保回滚段始终在撤消表空间中创建,而不是在系统表空间中创建

支持 ALTER TABLESPACE ... RENAME TO 语法

新增innodb_dedicated_server,让InnoDB根据服务器上检测到的内存量自动配置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method

新增INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF视图

新增了动态配置项 innodb_deadlock_detect,用来禁用死锁检查,因为在高并发系统中,当大量线程等待同一个锁时,死锁检查会大大拖慢数据库

支持使用innodb_directories选项在服务器脱机时将表空间文件移动或恢复到新位置

6、MySQL 8.0更好支持文档型数据库和JSON

7、优化

不可见索引,开始支持invisible index,(感觉又和Oracle一样了),在优化SQL的过程中可以设置索引为不可见,优化器变不会利用不可见索引

支持降序索引,可以对索引定义 DESC,之前,索引可以被反序扫描,但影响性能,而降序索引就可以高效的完成

8、支持RANK(), LAG()、NTILE()等函数

9、正则表达式增强,提供了REGEXP_LIKE(),EGEXP_INSTR(), REGEXP_REPLACE(), REGEXP_SUBSTR()等函数

10、新增备份锁,允许在线备份期间的DML,同时防止可能导致快照不一致的操作。 备份锁由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语法支持

11、字符集 默认字符集由latin1变为utf8mb4

12、配置文件增强

MySQL 8.0版本支持在线修改全局参数持久化,通过加上PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启db还可以应用到最新的参数。对于加上 PERSIST 关键字修改参数命令,MySQL系统会生成一个包含json格式数据的 mysqld-auto.cnf 文件,比如执行:

  1. set PERSIST expire_logs_days=10 ; #内存和json文件都修改,重启还生效
  2. set GLOBAL expire_logs_days=10 ; #只修改内存,重启丢失

系统会在数据目录下生成一个包含如下内容的 mysqld-auto.cnf 的文件:

{ "mysql_server": {"expire_logs_days": "10" } }

当 my.cnf 和 mysqld-auto.cnf 同时存在时,后者具有高优先级。

13、直方图

MySQL 8.0 版本开始支持期待已久直方图。优化器会利用column_statistics的数据,判断字段的值的分布,得到更准确的执行计划。

可以使用 ANALYZE TABLE table_name [UPDATE HISTOGRAM on col_name with N BUCKETS |DROP HISTOGRAM ON clo_name] 来收集或者删除直方图信息

14、支持会话级别SET_VAR 动态调整部分参数,有利于提升语句性能。

select /+ SET_VAR(sort_buffer_size = 16M) / id from test order id ;

insert /+ SET_VAR(foreign_key_checks=OFF) / into test(name) values(1);

15、默认参数的调整

调整back_log的默认值,保持和 max_connections一致,增强突发流量带来的连接处理容量。

修改 event_scheduler 默认为ON,之前默认是关闭的。

调整max_allowed_packet 的默认值,从4M增加到64M。

调整bin_log,log_slave_updates默认值为on。

调整expire_logs_days的过期时间为30天,老版本是7天,生产环境时,检查该参数,防止binlog过多造成空间紧张。

调整innodb_undo_log_truncate 默认为ON

调整innodb_undo_tablespaces 默认值为2

调整innodb_max_dirty_pages_pct_lwm 默认值10

调整innodb_max_dirty_pages_pct默认值为90

新增innodb_autoinc_lock_mode 默认值为2

16、InnoDB性能提升

废除buffer pool mutex,将原来一个mutex拆分成多个,提高并发

拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。

17、行缓存

MySQL8.0的优化器可以估算将要读取的行数,因此可以提供给存储引擎一个合适大小的row buffer来存储需要的数据。大批量的连续数据扫描的性能将受益于更大的record buffer

18、改进扫描性能

改进InnoDB范围查询的性能,可提升全表查询和范围查询 5-20%的性能。

19、成本模型

InnoDB缓冲区可以估算缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。

20、重构SQL分析器

改进SQL分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。

RPM安装时,rpm包是把各个子目录分别安装到相应目录下了,不存在那个根目录.
用RPM进行安装的时候,MySQL下的子目录被分散开,分别放在了以下几个目录下:
(CentOS RPM 安装MySQL)
[root@rhel5 ~]# find / -name mysql -print
/etc/logrotate.d/mysql
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/var/lock/subsys/mysql
/usr/lib/mysql
/usr/include/mysql
/usr/share/mysql
/usr/bin/mysql
而 data默认放在:/var/lib/mysql
mysql默认安装在了:/usr/share/mysql中
 
 
 
Mysql附加知识点:
1、当使用Mysql客户端的时候,可以使用system clear;清屏
2、修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';(采用配置的默认密码验证方式验证)
或 ALTER USER 'root'@'localhost' IDENTIFIED WITH  mysql_native_password(指定密码验证方式)BY '新密码';
 
在mysql 8.04 之前可以通过执行:
  SET PASSWORD=PASSWORD('[修改的密码]'); 来修改密码
但是MySQL8.0.4开始,这样是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,mysql 8.04 之后使用的是“caching_sha2_password”。
 
3、登录、退出mysql : mysql -u root -p
  1. MySQL登录与退出格式
    登录Mysqlmysql -u 帐号 -p密码
    mysql退出:mysql > exit;

如果有密码的话,登录方式为:

mysql -u root -h 127.0.0.1 -p

至于该使用哪个数据库,使用哪个,应该是这样:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| test               | 
| wt                 | 
+--------------------+
4 rows in set (0.00 sec)

mysql> use test
Database changed
mysql>

  1. mysql -u root -P 3306 -h 127.0.0.1 -p
  1. 表示超级用户名root,密码稍后输入,端口号3306(不输入P默认为3306),
  2. 主机地址127.0.0.(若使用本机作为主机,h默认127.0.0.
  1. mysql退出三种方法:
    mysql > exit;
    mysql > quit;
    mysql > \q;
  1.  
  1.  
 
 

Centos7 FPM 安装mysql8的更多相关文章

  1. CentOS7离线安装MySQL8.0

    CentOS7离线安装MySQL8.0 卸载软件 rpm -e --nodeps 要卸载的软件包 root@jacky zookeeper]# rpm -e --nodeps java-1.6.0-o ...

  2. centos7 二进制安装mysql-8.0.19

    安装包下载地址:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz 1.检 ...

  3. centos7上安装mysql8(上)

    1.删除系统现存的mysql rpm -pa | grep mysql 2.卸载mysql组件 yum remove mysql-xxx-xxx- 3.删除mysql的配置文件,卸载不会自动删除配置文 ...

  4. CentOS7编译安装MySQL8.0

    1.下载mysql8.0.16源码包和cmake源码包 cd /usr/local/srcwget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-b ...

  5. centos7下安装mysql8.0.12及设置权限

    一.mysql版本介绍 mysql的官网为:https://www.mysql.com/ 在官网上可以看到多个版本,主要版本如下, 1.MySQL Community Server 社区版本,开源免费 ...

  6. Centos7下安装MySQL8.0.23-小白的开始

    首先简单介绍一下什么叫MySQL: 数据库简而言之就是存储数据的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.是为了实现一定的目的,按照某种规则组织起来的数据的集合: MySQL ...

  7. centOs7.6安装 mysql-8.0.27

    1.下载mysql 2.连接服务器 3.通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包 4.通过 rpm -e mariadb-libs-5.5.68-1.el ...

  8. CentOS7.5 安装MySQL8 tar

    1.查看是否安装mariadb 执行命令: [root@mysql ~]# rpm -qa | grep mariadb 显示: mariadb-libs-5.5.56-2.el7.x86_64 2. ...

  9. centos7.5 安装mysql8.0.13

    在Linux系统上使用rpm包管理器安装mysql Installing MySQL on Linux Using RPM Packages 环境:CentOS Linux release 7.4.1 ...

随机推荐

  1. 【python】logging日志模块写入中文编码错误解决办法

    一.问题: 使用python的logging模块记录日志,有时会遇到中文编码问题错误. 二.解决办法: 在logging.FileHandler(path) 中添加指定编码方式 encoding='u ...

  2. 【BZOJ1045】[HAOI2008]糖果传递

    [BZOJ1045][HAOI2008]糖果传递 题面 bzoj 洛谷 题解 根据题意,我们可以很容易地知道最后每个人的糖果数\(ave\) 设第\(i\)个人给第\(i-1\)个人\(X_i\)个糖 ...

  3. Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试

    1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等.Neutron 提供了一个灵活的框架,通过配置,无论是开 ...

  4. Codeforces 908 D.New Year and Arbitrary Arrangement (概率&期望DP)

    题目链接:New Year and Arbitrary Arrangement 题意: 有一个ab字符串,初始为空. 用Pa/(Pa+Pb)的概率在末尾添加字母a,有 Pb/(Pa+Pb)的概率在末尾 ...

  5. Linux新手常见问题

    yum与apt的区别 参考:https://blog.csdn.net/qq_26182553/article/details/79869666 ubuntu下su: Authentication f ...

  6. 读书笔记:《HTML5开发手册》--figure、time、details、mark

    这是补充HTML5基础知识的系列内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四. ...

  7. Linux shell(4)

    test比较两个值: 测试比较两个值是linux中常用的比较运算,test命令可以进行对两个值的比较,如果比较成功则返回值为0,否则为非0 常用比较方法: ·1.整数比较 2.字符串比较 3.逻辑比较 ...

  8. 微软Word制作自己的模板

    我们在用Word的时候,很多时候需要一定的格式. 这个时候,*.dotx文件出场了!它将带给我们自己的模板. 步骤: 首先,新建一个文档,选择空白文档: 图片大就大吧,不要在意这些细节. 编辑一下,保 ...

  9. 基于C#的机器学习--贝叶斯定理-执行数据分析解决肇事逃逸之谜

    贝叶斯定理-执行数据分析解决肇事逃逸之谜 ​ 在这一章中,我们将: 应用著名的贝叶斯定理来解决计算机科学中的一个非常著名的问题. 向您展示如何使用贝叶斯定理和朴素贝叶斯来绘制数据,从真值表中发现异常值 ...

  10. init命令详解

    基础命令学习目录首页 1.手动输入命令会执行相关操作   #init 0 - 停机(千万不能把initdefault 设置为0 )   #init 1 - 单用户模式   #init 2 - 多用户, ...