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

原文地址:https://www.cnblogs.com/allmdzz/p/10342877.html