zoukankan      html  css  js  c++  java
  • mysql安装(rpm)

    mysql安装(rpm)

    1.卸载系统自带的 mariadb-lib

    [root@centos-linux ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.44-2.el7.centos.x86_64
    [root@centos-linux ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
    

    若不卸载,可能会出现mariadb与mysql冲突的情况

    2.下载 rpm 安装包

    去官网找到最新的 rpm 集合包。现在最新的是 mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

    复制其下载地址,在服务器下载 (或者本地下载了上传至服务器)。

    [root@centos-linux ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
    

    然后解压

    [root@centos-linux ~]# ls
    mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
    [root@centos-linux ~]# tar xvf mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
    mysql-community-test-5.7.13-1.el7.x86_64.rpm
    mysql-community-embedded-5.7.13-1.el7.x86_64.rpm
    mysql-community-embedded-compat-5.7.13-1.el7.x86_64.rpm
    mysql-community-server-5.7.13-1.el7.x86_64.rpm
    mysql-community-client-5.7.13-1.el7.x86_64.rpm
    mysql-community-common-5.7.13-1.el7.x86_64.rpm
    mysql-community-server-minimal-5.7.13-1.el7.x86_64.rpm
    mysql-community-embedded-devel-5.7.13-1.el7.x86_64.rpm
    mysql-community-devel-5.7.13-1.el7.x86_64.rpm
    mysql-community-libs-compat-5.7.13-1.el7.x86_64.rpm
    mysql-community-libs-5.7.13-1.el7.x86_64.rpm
    mysql-community-minimal-debuginfo-5.7.13-1.el7.x86_64.rpm
    

    3、安装

    依次执行(几个包有依赖关系,所以执行有先后)下面命令安装

    [root@centos-linux ~]# rpm -ivh mysql-community-common-5.7.13-1.el7.x86_64.rpm
    [root@centos-linux ~]# rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm
    [root@centos-linux ~]# rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm
    [root@centos-linux ~]# rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm
    

    4、启动mysqld服务

    service mysqld start
    

    这里需要注意一点,曾经在这里踩过几次坑
    若没有启动mysql服务,而直接登录mysql,在mysql的启动过程中有时会遇到下述错误
    Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    Mysql有两种连接方式
    (1)TCP/IP
    (2)socket
    对mysql.sock来说,其作用是mysql客户端程序mysql与mysql服务器端程序mysqlserver处于同一台机器,发起本地连接时可用。
    例如你无须定义连接host的具体IP得,只要为空或localhost就可以。
    在此种情况下,即使你改变mysql的外部port也是一样可能正常连接。
    因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。
    那么对于外部连接,必须是要变更port才能连接的。

    目前遇到的这种错误的情况一共有两种:
    一种是存在mysql.sock文件,这种的解决方法是建立软连接
    一种是不存在mysql.sock,这种情况是因为没有先启动mysql服务而造成的

    参考:https://blog.csdn.net/kerwin612/article/details/8568206

    5、数据库初始化

    在linux系统中,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

    mysqld --initialize --user=mysql
    

    如果是以 mysql 身份运行,则可以去掉 --user 选项。

    另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

    这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里

    [root@centos-linux ~]# cat /var/log/mysqld.log
    2016-07-16T07:56:38.282824Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2016-07-16T07:56:38.422114Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2016-07-16T07:56:38.449315Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2016-07-16T07:56:38.457910Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d3261dbf-4b2a-11e6-86ef-001c4260563f.
    2016-07-16T07:56:38.458976Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2016-07-16T07:56:38.459524Z 1 [Note] A temporary password is generated for root@localhost: hm9dKgzQdm:W
    

    上面最后一行则给出了生成的密码,现在就可以启动数据库了,然后使用上面的密码登陆。

    [root@centos-linux ~]# systemctl start mysqld
    [root@centos-linux ~]# mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.13
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    

    6.修改 root 密码

    该密码被标记为过期了,如果想正常使用还需要修改密码

    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    

    以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    同时,如果你设置的密码过于简单也会报错。

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    

    密码需要包含大写字母,小写字母,数字,特殊字符。如 "Yy123.."

    参考:https://my.oschina.net/Laily/blog/713022

  • 相关阅读:
    用C#如何创建、读取cookie
    根据拼音首字母搜索
    物理路径和相对路径 斜杠和反斜杠
    FileUpLoad导入文件类型
    JS获取FckEditor的值
    DateTime 的24小时和12小时制
    JS中Date对象getYear()方法和getFullYear()方法区别
    SQL Server 索引结构及其使用(二)
    带你学习JQuery:事件冒泡和阻止默认行为
    DropDownList 发现
  • 原文地址:https://www.cnblogs.com/xhnxhnu/p/mysql.html
Copyright © 2011-2022 走看看