赞
踩
rpm -qa | grep glibc
[!CAUTION]
根据操作系统的要求下载对应版本放到Linux服务器上面
创建文件夹一会放入我们的压缩包
[!NOTE]
解压gz后缀:
gzip -d XXXXXX.tar.xz.gz
[!NOTE]
解压tar.xz后缀:
tar -xvf XXXXXX.tar.xz
vi /etc/profile
[!IMPORTANT]
注意:
这里我们需要进入MySQL的bin文件中才可以
export PATH=$PATH:/mysql8.3.0/mysql/mysql-8.3.0-linux-glibc2.17-aarch64/bin
#刷新缓存
source /etc/profile
[!TIP]
进入:
根目录"/"然后搜索"my"点击「TAB」按钮两次,是否提示,如果提示则说明环境变量修改成功
mkdir -p /mysql8.3.0/data
chmod -R 777 /mysql8.3.0/data
#mysql临时存放文件
mkdir -p /tmp/mysql
#mysql的日志文件
mkdir -p /mysql8.3.0/log
#mysql的pid-file文件夹
mkdir -p /mysql8.3.0/mysqld
vi /mysql8.3.0/my.cnf
[mysql] # 默认字符集 default-character-set=utf8mb4 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 server-id = 3306 user = mysql socket = /tmp/mysql.sock # 安装目录 basedir = /opt/soft/mysql8 # 数据存放目录 datadir = /opt/soft/mysql8/datas/mysql log-bin = /opt/soft/mysql8/datas/mysql/mysql-bin innodb_data_home_dir =/opt/soft/mysql8/datas/mysql innodb_log_group_home_dir =/opt/soft/mysql8/datas/mysql #日志及进程数据的存放目录 log-error =/opt/soft/mysql8/datas/mysql/mysql.log pid-file =/opt/soft/mysql8/datas/mysql/mysql.pid # 服务端使用的字符集默认为8比特编码 character-set-server=utf8mb4 lower_case_table_names=1 autocommit =1 ##################以上要修改的######################## skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 1024 sort_buffer_size = 4M net_buffer_length = 8K read_buffer_size = 4M read_rnd_buffer_size = 512K myisam_sort_buffer_size = 64M thread_cache_size = 128 #query_cache_size = 128M tmp_table_size = 128M explicit_defaults_for_timestamp = true max_connections = 500 max_connect_errors = 100 open_files_limit = 65535 binlog_format=mixed binlog_expire_logs_seconds =864000 # 创建新表时将使用的默认存储引擎 default_storage_engine = InnoDB innodb_data_file_path = ibdata1:10M:autoextend innodb_buffer_pool_size = 1024M innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 transaction-isolation=READ-COMMITTED [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer_size = 256M sort_buffer_size = 4M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
[!TIP]
可以使用以下的配置
[mysqld] #Mysql服务的唯一编号 每个mysql服务Id需唯一 server-id=1 #服务端口号 默认3306 port=3306 #mysql安装根目录(default /usr) basedir=/mysql8.3.0/mysql/mysql-8.3.0-linux-glibc2.17-aarch64 #mysql数据文件所在位置 datadir=/mysql8.3.0/data #pid「需要手动创建mysqld文件夹」 pid-file=/mysql8.3.0/mysqld/mysqld.pid #设置socke文件所在目录「需要手动创建mysqld文件夹」 socket=/mysql8.3.0/mysqld/mysql.sock #设置临时目录「需要手动创建」 tmpdir=/tmp/mysql # 用户 user=root # 允许访问的IP网段 bind-address=0.0.0.0 # 跳过密码登录 skip-grant-tables #主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容 #skip-external-locking #只能用IP地址检查客户端的登录,不用主机名 #skip_name_resolve=1 #事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能) #transaction_isolation=READ-COMMITTED #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节) character-set-server=utf8mb4 #数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server=utf8mb4_general_ci #设置client连接mysql时的字符集,防止乱码 #init_connect='SET NAMES utf8mb4' #是否对sql语句大小写敏感,1表示不敏感 lower_case_table_names=1 #最大连接数 max_connections=400 #最大错误连接数 max_connect_errors=1000 #TIMESTAMP如果没有显示声明NOT NULL,允许NULL值 explicit_defaults_for_timestamp=true #SQL数据包发送的大小,如果有BLOB对象建议修改成1G max_allowed_packet=128M #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭 #MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效 interactive_timeout=1800 wait_timeout=1800 #内部内存临时表的最大值 ,设置成128M。 #比如大数据量的group by ,order by时可能用到临时表, #超过了这个值将写入磁盘,系统IO压力增大 tmp_table_size=134217728 max_heap_table_size=134217728 #禁用mysql的缓存查询结果集功能 #后期根据业务情况测试决定是否开启 #大部分情况下关闭下面两项 #query_cache_size = 0 #query_cache_type = 0 #数据库错误日志文件「需要手动创建」 log-error=/mysql8.3.0/log/mysqld.log #慢查询sql日志设置 #slow_query_log=1 #slow_query_log_file=/var/log/mysqld_slow.log #检查未使用到索引的sql log_queries_not_using_indexes=1 #针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数 log_throttle_queries_not_using_indexes=5 #作为从库时生效,从库复制中如何有慢sql也将被记录 log_slow_slave_statements=1 #慢查询执行的秒数,必须达到此值可被记录 long_query_time=8 #检索的行数必须达到此值才可被记为慢查询 min_examined_row_limit=100 #mysql binlog日志文件保存的过期时间,过期后自动删除 #expire_logs_days=5 binlog_expire_logs_seconds=604800
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data socket=/usr/local/mysql/data/mysql.sock # 允许 MyISAM 表的符号链接;8.0.26版本已弃用 symbolic-links=0 # 允许最大连接数 max_connections=1024 #任何给定 MySQL 用户帐户允许的最大同时连接数。值 0(默认值)表示 “没有限制。” max_user_connections=0 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=100 #SELECT语句 的执行超时 ,以毫秒为单位。如果值为 0,则不启用超时 max_execution_time=5000 #如果设置为OFF,MySQL 会中止 SELECT可能需要很长时间才能执行的语句(即,优化器估计检查的行数超过 的值的语句 max_join_size)。WHERE当发布了不明智的声明时,这很有用。新连接的默认值为 ON,它允许所有 SELECT语句。 sql_big_selects=OFF #查询返回数据行数最大值,超过此值则终止查询默认最大值18446744073709551615 max_join_size=10000 # 服务端使用的字符集默认为UTF8 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password #是否对sql语句大小写敏感,1表示不敏感 注意此参数在8.0版本后必须在初始化数据库之前配置,即初始化后不允许修改此值 lower_case_table_names = 1 #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭 #MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效 interactive_timeout = 1800 wait_timeout = 1800 #Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6 #执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞 lock_wait_timeout = 3600 #内部内存临时表的最大值。 #比如大数据量的group by ,order by时可能用到临时表, #超过了这个值将写入磁盘,系统IO压力增大 tmp_table_size = 64M max_heap_table_size = 64M [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4 #mysql socket连接使用 [client] port=3306 #配合[mysqld] 下的socket socket=/usr/local/mysql/data/mysql.sock
mysqld --defaults-file=/mysql8.3.0/my.cnf --basedir=/mysql8.3.0/mysql/mysql-8.3.0-linux-glibc2.17-aarch64 --datadir=/mysql8.3.0/data --user=root --initialize-insecure
# mysqld --defaults-file=「my.cnf文件地址」--basedir=「mySQL安装地址」 --datadir=「数据存放地址」 --user=「用户名称」--initialize-insecure
提示需要的版本没有所以最好一开始下载对应的版本才可以
mysqld_safe --defaults-file=/mysql8.3.0/my.cnf &
ps -ef | grep mysql
#跳过密码直接登录,如果出现了异常
mysql -uroot --skip-password
#准确可以看出来异常是默认的套子节地址有问题「/tmp/mysql.sock」,但是我们设置的是「/mysql8.3.0/mysqld/mysql.sock」
mysql -uroot --socket=/mysql8.3.0/mysqld/mysql.sock
先查看是否进入了mysql的控制台,查看一下所有的表
show databases;
#直接执行修改root用户的密码为root
alter user root@'localhost' identified by 'root';
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
这时候需要做的是:exit退出
#重启数据库
service mysql restart
这里其实重启失败了,因为我们的数据是通过安装包直接运行的所以有问题,但是不影响主要是后面的权限刷新功能
再次连接数据库,这次不使用跳过密码的连接,并且我们需要刷新权限
![]()
#刷新权限
flush privileges;
#修改密码为root
alter user root@'localhost' identified by 'root';
退出mysql的系统,并且关闭免密登录的功能重启MySQL
关闭MySQL,不建议使用直接杀死,这样会导致数据异常
关闭:跳过密码登录功能
开启程序:mysqld_safe --defaults-file=/mysql8.3.0/my.cnf &
登录程序:mysql -uroot -p --socket=/mysql8.3.0/mysqld/mysql.sock
使用**-p**的登录会提示输入密码我们输入我们修改之后的密码:root
查看是否可以正常的登录系统
mysql -uroot -p --socket=/mysql8.3.0/mysqld/mysql.sock
- 1
mysql -uroot -h192.168.215.130 -p
很明显没有开启远程
ERROR 1130 (HY000): Host ‘192.168.215.130’ is not allowed to connect to this MySQL server
#将所有用户都修改可以远程访问和root一样权限
update user set user.Host='%' where user.User='root';
异常:
ERROR 1046 (3D000): No database selected
出现这种说明没找到数据库我们需要切换数据库
#切换数据
use mysql
#查询用户状态是否可以远程访问
select user,host from user;
若出现了root的用户当前的host为%的时候则说明我们的上面的修改成功了
#查看防火墙 firewall-cmd --state
- 1
- 2
![]()
#关闭防火墙 systemctl stop firewalld.service #放行3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启防火墙 systemctl start firewalld.service #永久关闭防火墙 systemctl disable firewalld.service
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
[!WARNING]
**注意:**必须关闭服务器的防火墙,或者确保防火墙开启3306的端口
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。