35.mysql5.7.40部署

发表于 mysql 分类,标签:
# 下载
# wget http://js.funet8.com/centos_software/mysql-boost-5.7.34.tar.gz
# wget http://js.funet8.com/centos_software/cmake-3.21.1.tar.gz
# 备用下载
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.34.tar.gz
# wget https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1.tar.gz

v1版本
链接:https://www.cnblogs.com/shidian/p/11589626.html 
1.准备安装包
下载地址: 

2.解压安装包
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar
mv mysql-5.7.26-linux-glibc2.12-x86_64 /opt/mysql

3.创建MySQL用户组合用户并修改权限
groupadd mysql
useradd -r -g mysql mysql

4.创建数据目录并赋予权限。
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限

5.配置my.cnf
vim /etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/opt/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

[mysqld]
#设置mysql的安装目录
basedir = /data/mysql
#设置mysql数据库的数据存放目录
datadir = /data/mysql_data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /data/mysql_data/mysqld.log
pid-file = /data/mysql_data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
#explicit_defaults_for_timestamp=true
## Disabling symbolic-links is recommended to prevent assorted security risks
## Settings user and group are ignored when systemd is used.
## If you need to run mysqld under a different user or group,
## customize your systemd unit file for mariadb according to the
## instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

6.始化数据库
cd /opt/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
重要,如报错
./mysqld: error while loading shared libraries
则安装
yum -y install libaio
安装依赖后删除/data/mysql目录,重新执行上述安装数据库步骤

7.启动
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start

8.创建软连接
ln -s /opt/mysql/bin/mysql /usr/bin

9.登录后修改密码
查看密码
cat /data/mysql/mysql.err
登录后修改密码
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
或者
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'shimujiuxia';
FLUSH PRIVILEGES;

10.修改权限
use mysql;
update user set host='%' where user='root';
FLUSH PRIVILEGES;
移除权限
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';
DROP USER 'root'@'%';
FLUSH PRIVILEGES;


11.开机启动
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list

my.cnf配置
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8

[mysql]
prompt="MySQL [\d]> "
#no-auto-rehash
default-character-set = utf8

[mysqld]
character_set_server = utf8
collation-server = utf8_bin
transaction_isolation = READ-COMMITTED
port = 3306
socket = /tmp/mysql.sock
default_authentication_plugin = mysql_native_password

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

basedir = /opt/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1

init-connect = 'SET NAMES utf8'

skip-name-resolve
#skip-networking
back_log = 300

max_connections = 5268
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 1024
max_allowed_packet = 500M
#binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 128M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 256M

thread_cache_size = 64

ft_min_word_len = 4

#log_bin = mysql-bin
#binlog_format = mixed
#binlog_expire_logs_seconds = 604800

log_error = /data/mysql/mysql.err
slow_query_log = off
#long_query_time = 1
#slow_query_log_file = /data/mysql/data/mysql-slow.log

performance_schema = 0
explicit_defaults_for_timestamp

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB
#default-storage-engine = MyISAM
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 1024M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 2G
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
#myisam_repair_threads = 1
transaction-isolation=READ-COMMITTED
binlog_format=row
interactive_timeout = 28800
wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 500M

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M


v2版本
1.输入命令,检测系统是否有安装的mysql
rpm -qa|grep mysql

2.执行命令,强行卸载
rpm -e --nodeps mysql57-community-release-el7-10.noarch

3.进入/data目录,创建mysql目录,把安装包上传到这里

4.执行命令,进行解压
tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz

5.执行命令,将文件夹重新命名为mysql
mv mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz mysql

6.执行命令,创建用户组
groupadd mysql

7.执行命令,创建用户
useradd -r -g mysql mysql

8.进入目录
mkdir -p /data/mysql_data

9.执行命令,将mysql文件夹的所有者及所属组均改为mysql
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /data/mysql_data

10.进入support-files目录,创建文件my_default.cnf,内容如下
vim /data/mysql/support-files/my_default.cnf
[mysqld]
#设置mysql的安装目录
basedir = /data/mysql
#设置mysql数据库的数据存放目录
datadir = /data/mysql_data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /data/mysql_data/mysqld.log
pid-file = /data/mysql_data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

11.输入命令,拷贝一份
cp my_default.cnf /etc/my.cnf

12.进mysql执行命令,初始化mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.27/ --datadir=/usr/local/mysql/mysql-5.7.27/data/
./bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql_data

13.输入命令查看临时密码
cat /data/mysql_data/mysqld.log

14.配置使用服务启动mysql
service mysql start
cp  /data/mysql/support-files/mysql.server /etc/init.d/mysql

15.执行命令,启动mysql
service mysql start

16.添加软连接
ln -s /data/mysql/bin/mysql /usr/bin
添加开机启动
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list

17.设置密码和开启远程连接,登录后更改密码
set password=password('aytxtt589');
grant all privileges on *.* to root@'%' identified by 'aytxtt589';
flush privileges;

18.输入命令开启远程连接
use mysql;
update user set host='%' where user = 'root'
flush privileges;


0 篇评论

发表我的评论