一、下载并解压
1) 创建目录
mkdir -p /data/softWare/mysql # mysql安装文件目录
mkdir -p /data/mysql_3306Data/ #mysql数据库目录
mkdir -p /data/mysql_3306Data/ssl # mysql密钥目录
mkdir -p /var/run/mysqld/ # socket文件目录
2)下载
官网地址:
https://dev.mysql.com/downloads/mysql/5.6.html
或
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
或
从本地yum源下载
3)解压
cd /data/softWare/mysql
tar -zxvf /data/download/mysql/tar_install/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz.1 ./
mv mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz.1 mysql-5.7
二、删除mysql历史包
rpm -qa | grep mysql
如果有包存在,使用 rpm -e --nodeps 包名 命令依次删除;如:
mysql-5.1.47-4.el6.x86_64
rpm -e --nodeps mysql-5.1.47-4.el6.x86_64
三、添加mysql用户
groupadd mysql #创建mysql组
useradd -r -s /sbin/nologin -g mysql mysql -d /data/softWare/mysql/mysql-5.7 #添加mysql用户使其shell模式为nologin(禁止登录)
chown -R mysql:mysql /data/softWare/mysql/mysql-5.7
chown -R mysql:mysql /data/mysql_3306Data
四、初始化安装
1) 提前安装numactl组件
yum -y install numactl
2) 初始化
bin/mysqld --initialize --user=mysql --basedir=/data/softWare/mysql/mysql-5.7 --datadir=/data/mysql_3306Data
这一步就将最后的密码记住,后面登陆mysql时使用,最好使用 echo “passwd of tmp” > passwdTmp 命令记下来
3) 生成密钥文件
bin/mysql_ssl_rsa_setup --datadir=/data/mysql_3306Data/ssl
五、修改配置文件
1) my.cnf 文件配置
cd support-files
发现没有my-default.cnf文件,然后手动创建:
vim /etc/my.cnf (下面的文件,按照自己的配置修改对应参数即可)
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock #登陆MySQL客户端读取的socket文件
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /data/softWare/mysql/mysql-5.7 #MySQL的home路径
datadir = /data/mysql_3306Data/ #MySQL的数据存放目录
port = 3306
socket = /var/run/mysqld/mysqld.sock #mysqld启动时读取的socket文件
character-set-server=utf8
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6
server_id=1
innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
2) mysqld 文件配置
cp mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
这里的配置与mysql相同,我修改了basedir, datadir, lockdir, lock_file_path 四个参数,
mysqld_pid_file_path 参数值必须为空,启动MySQL时会自动分配值写入pid文件
六、启动MySQL
1)启动前检测
bin/mysqld_safe --user=mysql & # 后台运行,检测
2)检查mysqld服务状态,确保mysql服务处在running...
chown -R mysql:mysql /var/run/mysqld
service mysqld start 或 /etc/init.d/mysqld start
3) 登陆并修改密码
cat passwdTmp #查看临时密码
bin/mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by 'youpassword'; # 修改密码
或 mysql> set password=password("youpassword");
mysql> flush privileges; # 最后刷新权限
如果 bin/mysql -uroot -p 无法启动时,修改/etc/my.cnf文件,在[mysqld]下面添加“skip-grant-tables” 跳过登陆验证,最后在修改密码后,注销掉“skip-grant-tables”参数。
七、修改MySQL配置
1) 创建软链接,使mysql全局使用
ln -s /data/softWare/mysql/mysql-5.7/bin/mysql /usr/bin/mysql5.7
2) 配置mysql中自启动
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
chkconfig --list mysqld # 查看mysqld启动状态
3) 配置远程可访问
3-1) 退出安全模式
mysql> show variables like 'sql_safe%'; # 1. 查看当前状态
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| sql_safe_updates | OFF |
+------------------+-------+
set sql_safe_updates=0; 或 set sql_safe_updates=off; #2. 修改状态
3.2) 配置远程可访问
mysql>use mysql;
mysql>update user set host='%' where user='root';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd' WITH GRANT option; # 配置你的远程登陆密码 *.* 为数据库名.表名; %为ip或域名
mysql>FLUSH PRIVILEGES;
mysql>quit
# service mysql restart; # 重启后即可生效
4) 配置多端口
4.1)创建数据库文件 和 my3307.cnf, mysqld3307 配置文件
4.1-1) mkdir -p /data/mysql_3306Data/
4.1-2) cp /etc/my3306.cnf /etc/my3307.cnf
1. 修改my.cnf为my3306.cnf, 在/etc目录下修改my.cnf 为my3306.cnf,同时更改其中的socket配置为:/var/run/mysqld/mysqld3306.sock,然后以此来修改/var/run/mysqld 中的文件名字
2. 拷贝my3306.cnf文件为my3307.cnf,然后修改其中 port,datadir,socket 等配置
4.1-3) cp /etc/init.d/mysql3306 /etc/init.d/mysql3307
1. 修改mysqld为mysql3306
2. 拷贝mysql3306为mysql3307,然后修改其中 datadir 等配置
4.2)启动
4.2-1) 初始化
bin/mysqld --initialize --user=mysql --basedir=/data/softWare/mysql/mysql-5.7 --datadir=/data/mysql_3307Data # 这一步要记住临时密码
bin/mysql_ssl_rsa_setup --datadir=/data/mysql_3306Data/ssl # 生成密钥文件
4.2-2) 启动前检测:
bin/mysqld_safe --defaults-extra-file=/etc/my3307.cnf --user=mysql &
4.2-3) 启动
mysql -uroot -P 3307 -h 127.0.0.1 -p
mysql> alter user 'root'@'localhost' identified by 'youpassword';
mysql> flush privileges;
mysql> quit;