zoukankan      html  css  js  c++  java
  • mysql安装

    mysql目前有三个系列,5.0系列,5.5系列,7.0系列(cluster),每个系列版本后缀的含义,一般生产环境选择GA版,beta为测试版本

    mysql里面的support-files/mysql.server脚本里面的basedir,datadir是服务端启动时需要指定的,而/etc/my.cnf是客户端接进来操作时需要查看的参数,里面也有basedir,datadir

    mysql5.5后源码安装需要cmake

    先安装yum -y install gcc gcc-c++

    下载cmake

    cd /usr/local/src

    wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz

    tar -xf cmake-2.8.12.1.tar.gz

    cd cmake-2.8.12.1

    ./configure

    make

    make install

    查看cmake的版本

    cmake --version

    以下为单实例安装mysql

    源码安装mysql要下载以下图片显示的,即进入mysql官网,点击mysql connunity(社区版),然后选择source code,下载(mysql-5.6.43.tar.gz),这种方式是完全源码编译安装

    安装源码编译mysql需要的库跟软件支持,其中gcc gcc-c++在安装nginx时已安装过

    yum -y install cmake make gcc gcc-c++ ncurses-devel autoconf

    进入存放软件压缩包的目录

    cd /usr/local/src

    不显示过程的解压文件到当前目录下,并保留原有压缩包

    tar xf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

    进入解压缩出来的软件目录

     cd mysql-5.7.23-linux-glibc2.12-x86_64

    创建软件安装目录及mysql数据库存放位置,并把目录权限设置为mysql用户

     mkdir -p /usr/local/mysql/data
     chown -R mysql.mysql /usr/local/mysql

    cmake编译安装mysql,指定安装目录,指定端口,指定数据库存放位置

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

    编译

    make

    安装

    make install

    初始化前如果需要制定初始化数据库的各种参数(可能是优化参数)那么就得去support-files里面把my-default.cnf复制到安装目录下,然后初始化数据库时指定配置文件

    安装完初始化数据库,并指定配置文件

    ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 

    还可以把my.cnf做个软链接链接到/etc/my.cnf

    ln -s /usr/local/mysql/my.cnf   /etc/my.cnf

    以上若是初始化数据库时不指定配置文件,那么会生成一个默认的配置文件my.cnf

    修改my.cnf参数在mysqld下面加入

    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    log-error = /usr/local/mysql/error.log
    pid-file = /usr/local/mysql/mysql.pid
    user = mysql
    tmpdir = /tmp

    启动mysql

    /usr/local/mysql/support-files/mysql.service start

    进入数据库管理界面

    /usr/local/mysql/bin/mysql

    编辑执行路径

    vim /etc/profile

    末尾加入:export PATH=$PATH:/usr/local/mysql/bin

    更新路径

    . /etc/profile

    初始进入没有密码

    复制启动脚本到etc下面,即可使用service与systemctl命令开启,关闭,重启mysql

    cp /usr/local/mysql/support-files/mysql.service /etc/init.d/mysqld

    chmod /etc/init.d/mysqld

    开机启动mysql

    chkconfig --add mysqld

    查看开机启动服务

    chkconfig --list 

    还有一种方式是二进制安装,linux-generic,包名是(mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz),这样就直接解压,相当于源码安装执行了cmake,make,make install之后的状态,然后执行suport-file下面的初始化脚本即可。

    先下载二进制包,解压包,并把包移动更名为/usr/local/mysql

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

    创建用户组,用户,创建目录/data为存放数据库数据目录,错误日志目录,pid目录

    groupadd mysql

    useradd -M --g mysql mysql

    usermod -/sbin/nologin mysql

    mkdir /data/mysql

    mkdir /data/mysql/data

    mkdir /data/mysql/inndb_data

    touch /data/mysql/mysqld.log

    touch /data/mysql/mysqld.pid

    chown -R mysql.mysql /data

    创建socket文件

    touch /tmp/mysql.sock

    chown mysql.mysql /tmp/mysql.sock

    创建配置文件/etc/my.cnf

    [mysqld]
    pid-file=/data/mysql/mysqld.pid
    character-set-server=utf8
    user=mysql
    port=3306
    basedir=/usr/local/mysql
    datadir=/data/mysql/data
    socket=/tmp/mysql.sock
    default-storage-engine=InnoDB
    default-time-zone='+8:00'
    explicit_defaults_for_timestamp=true
    max_connections = 5000
    wait_timeout = 1200
    innodb_support_xa = ON
    innodb_data_home_dir=/data/mysql/inndb_data
    innodb_data_file_path=ibdata1:2048M:autoextend
    innodb_file_per_table=1
    innodb_buffer_pool_size = 512M
    innodb_buffer_pool_instances=2
    innodb_purge_threads=2
    innodb_support_xa=FALSE
    innodb_flush_method = O_DIRECT
    innodb_io_capacity=1000
    innodb_read_io_threads=2
    innodb_write_io_threads=2
    innodb_change_buffering=all
    innodb_stats_on_metadata=off
    innodb_strict_mode=1
    innodb_log_buffer_size = 16M
    innodb_log_file_size = 256M
    innodb_log_files_in_group = 3
    innodb_flush_log_at_trx_commit=2
    innodb_autoinc_lock_mode=2
    innodb_thread_concurrency=0
    max_tmp_tables=100
    query_cache_size=0
    query_cache_type=0
    max_prepared_stmt_count=1048576
    sort_buffer_size=32769
    server_id = 2800
    log-bin=/data/mysql/bin-file.log
    binlog_cache_size = 1M
    binlog_format=MIXED
    max_binlog_size=256M
    max_binlog_cache_size=50M
    expire_logs_days = 91
    sync_binlog=2

    [mysqld_safe]
    log-error=/data/mysql/mysqld.log
    pid-file=/data/mysql/mysqld.pid

    [client]
    port=3306
    socket=/tmp/mysql.sock

    初始化

    cd /usr/local/mysql/bin

    ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

    初始化完会有默认密码,记下

    设置开机启动

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

    chmod +/etc/rc.d/init.d/mysqld

    chkconfig --add mysqld

    启动数据库

    service mysqld start

    配置环境变量

    /etc/profile

    export PATH=$PATH:/opt/mysql/bin

    source /etc/profile

    登录数据库

    mysql -uroot -p

    修改数据库密码

    mysql> alter user "root"@"localhost"  identified by "新密码";

    刷新权限

    mysql> flush privileges;

    添加远程登录用户

    mysql> grantall privileges on *.to "用户名"@"IP地址"  identified by "密码" with grant option;

    开启远程用户所有IP都能访问,IP地址改成%

    以下是源码安装mysql多实例

    多实例是指在同一台服务器上开启多个mysql服务,以端口号作为区分,多实例是逻辑上独立,但是底层的硬件资源还是公用的,以此来解决一台服务器运行一个实例有可能会造成浪费资源的情况,多实例由于是公用底层硬件资源,所以当某个实例的并发数增多时,会抢占资源,造成其他实例的响应缓慢。

    多实例可以影射生活事件,比如多人同居,三房一厅,逻辑上独立,指三人分房睡觉,互不干扰,而硬件资源类似客厅,厨房,厕所,当有一个人占有厨房或者厕所,那么其他人就不能用,当然mysql多实例没有那么夸张到不能应用的情况,但是影响肯定会有的

    多实例安装基本上与但实例差不多,先源码编译安装,预备创建多少个实例就创建多少个目录,这个目录不仅是数据库数据存放目录,最好还把启动脚本跟配置文件存放在里面,

    然后复制mysql启动脚本跟my.cnf到相应实例的目录下,并修改配置文件的启动脚本,数据存放目录等参数

    然后执行数据库初始化脚本

    ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql --default-file=/data/3306/my.cnf

    启动数据库

    /data/3306/mysqld start -S /data/3306/data/mysql.sock

  • 相关阅读:
    用动画切换按钮的状态
    用UICollectionView实现无限轮播图
    水平方向瀑布流
    UICollectionViewFlowLayout使用示例
    旋转木马效果
    Greenplum集群或者Postgresql出现死锁肿么办?
    Lucene的全文检索学习
    Jms规范学习
    Nginx的相关问题
    keepalived+Nginx实现主备保障Nginx的高可用。
  • 原文地址:https://www.cnblogs.com/allmdzz/p/10342877.html
Copyright © 2011-2022 走看看