二进制安装mysql8.0

安装依赖包 
yum install -y libaio
yum install -y perl perl-devel
 
 
 
解压
 
mkdir /opt/mysql
mv mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz /opt/mysql/
 
cd /opt/mysql
tar xvJf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
 
 
 
创建一个链接
cd /usr/local
ln -s /opt/mysql/mysql-8.0.16-linux-glibc2.12-x86_64 mysql
 
 
 
创建运行的用户
groupadd mysql
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M -n mysql
 
 
 
创建所需要的目录
mkdir -p /data/{mysql,tmp}/
mkdir /var/lib/mysql
 
 
修改权限
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/{mysql,tmp}/
chown mysql:mysql /var/lib/mysql
 
 
 
 
配置文件内容
#my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
 
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
tmpdir=/data/tmp
user=mysql
port=3306
server-id=62
character-set-server=utf8
binlog_format = ROW
transaction_isolation = READ-COMMITTED #事务提交等级
old_passwords=0 #关闭旧密码选项
secure-auth=1 #防止低版本客户端访问
sql-mode="NO_AUTO_CREATE_USER" #禁止创建用户不添加密码
safe-user-create=1 #只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令
symbolic-links=0 #是否支持超链接文件
skip_name_resolve=1 #禁用DNS主机名查找
lower_case_table_names=1 #大小写不敏感
local_infile=0 #禁止使用load data
log_bin
log_slave_updates
innodb_open_files = 1000
 
innodb_adaptive_hash_index = ON #自适应辅助hash索引开启
innodb_file_per_table #innodb单独表文件
innodb_file_format=Barracuda #启用压缩
innodb_buffer_pool_size= 300MB #innodb的buff pool大小
innodb_flush_method=O_DIRECT #避免双缓冲(double buffering)和降低swap的压力
innodb_buffer_pool_dump_at_shutdown=1 #shutdown时dump出buff pool内容
innodb_buffer_pool_load_at_startup=1 #shutdown时load入buff pool内容
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
delayed_insert_limit = 100 #插入100行后允许select运行
delayed_insert_timeout = 300 #INSERT语句的执行超时时间
delayed_queue_size = 1000 #延迟队列长度
sort_buffer_size=2M #每个线程的sort的内存
join_buffer_size=4M #每个线程的join的内存
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/slow.log
max_connections=1000 #最大连接数
max_connect_errors=1000 #最大连接错误数
max_allowed_packet=1G #数据包大小
max_connections = 1000
lock_wait_timeout = 3600
table_definition_cache = 512 #存放表的定义信息
table_open_cache = 200 #存放当前已经打开的表句柄
tmp_table_size = 16777216 #临时表大小
wait_timeout = 2880000 #等待超时
interactive_timeout = 2880000
 
[mysql]
default-character-set=utf8
 
 
 
修改my.cnf权限
chown mysql:mysql /etc/my.cnf 
 
 
 
添加到环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile 
source /etc/profile
 
 
初始化MySQL
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize-insecure
 
 
创建error.log(8.0版本在无error.log的情况下不会自动创建,会报错)
 
HOST_NAME=`hostname`
touch /data/mysql/$HOST_NAME.err
chown mysql.mysql /data/mysql/$HOST_NAME.err
 
 
启动MySQL
cp /opt/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld
 
/etc/init.d/mysqld start 
 
 
 
修改密码
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY "chengce243";(默认采用新加密方式)
 
注意8.0 默认采用新的加密方式:caching_sha2_password,会导致8.0以下版本的客户端连接不上:
 
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /data/mysql/lib/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
 
解决:修改为老的加密方式:mysql_native_password
 
mysql> ALTER USER `root`@`%` IDENTIFIED WITH mysql_native_password BY "chengce243"; #修改加密规则 
 
mysql> ALTER USER `root`@`%` IDENTIFIED BY "chengce243" PASSWORD EXPIRE NEVER; #永不过期
 
mysql> FLUSH PRIVILEGES; #刷新权限 
 
或者在配置文件my.cnf修改参数采用老的加密方式
 
default_authentication_plugin = mysql_native_password
 

猜你喜欢

转载自www.cnblogs.com/liang545621/p/12606263.html