指定位置安装
步骤:
1、在根目录下创建文件夹/data/mysql
mkdir /data/package -p
2、上传mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz文件到/data/package下
cd /data/tar -zxvf /data/package/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /data/# 或tar -xvf /data/package/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /data/
3、更改解压缩后的文件夹名称
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
4、创建mysql用户组和mysql用户
groupadd mysqluseradd -r -g mysql mysql
5、创建conf、log、tmp文件夹和error.log文件
mkdir /data/mysql/conf /data/mysql/log /data/mysql/tmp -pvim /data/mysql/log/error.log# 打开后:wq 保存退出
6、安装libaio依赖包,系统自带的有这个依赖包所以不需要安装,不过自带的依赖包会报错(可跳过)
查询是否暗转libaio依赖包#yum search libaionn如果没安装,可以用下面命令安装#yum install libaio
7、初始化mysql命令
cd /data/mysql/bin./mysqld --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data --initialize --console
在执行上面命令时特别要注意一行内容
[Note] A temporary password is generated for root@localhost: o*s#gqh)F4Ck
root@localhost: 后面跟的是mysql数据库登录的临时密码,各人安装生成的临时密码不一样
如果初始化时报错如下:
error while loading shared libraries: libnuma.so.1: cannot open shared objec
是因为libnuma安装的是32位,我们这里需要64位的,执行下面语句就可以解决
yum install numactl.x86_64
执行完后重新初始化mysql命令
8、关联myql用户到mysql用户组中
chown -R mysql:mysql /data/mysql/chown -R mysql /data/mysql
9、修改Mysql配置文件
vim /data/mysql/bin/mysqld_safe可使用命令替换# :%s/匹配字符/替换字符/:%s/\/usr\/local\/mysql/\/data\/mysql/修改前if test -z "$basedir"thenbasedir=/usr/local/mysqlbindir=/usr/local/mysql/binif test -z "$datadir"thendatadir=/usr/local/mysql/datafisbindir=/usr/local/mysql/binlibexecdir=/usr/local/mysql/binelsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"fi修改后if test -z "$basedir"thenbasedir=/data/mysqlbindir=/data/mysql/binif test -z "$datadir"thendatadir=/data/mysqlfisbindir=/data/mysql/binlibexecdir=/data/mysql/binelsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"fi
10、修改my.cnf文件 配置文件存放在%mysql%/conf中(也可随意放置,只需在后续启动服务器时指定配置文件即可)
# 把下方配置修改成自己服务器上的路径即可,使用下方命令:%s/\/data\/mysql-8.0.18/\/data\/mysql/[client]port = 3306socket = /data/mysql-8.0.18/tmp/mysql.sock[mysqld]#mysql数据文件所在位置datadir = /data/mysql-8.0.18/data#pidpid-file = /data/mysql-8.0.18/mysql.pid#设置socke文件所在目录socket = /data/mysql-8.0.18/tmp/mysql.sock#设置临时目录tmpdir = /data/mysql-8.0.18/tmp# 日志相关slow_query_log = ONlog_error = "/data/mysql-8.0.18/log/error.log"slow_query_log_file = "/data/mysql-8.0.18/log/blg-slow.log"long_query_time = 2log_queries_not_using_indexes = 1log_throttle_queries_not_using_indexes = 10# expire_logs_days = 90min_examined_row_limit = 100log_output = TABLE,FILEgeneral_log = 1# binlog设置master_info_repository = TABLErelay_log_info_repository = TABLElog_bin = bin.logserver-id = 1# innodb 设置default_storage_engine = InnoDBinnodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 1024Minnodb_write_io_threads = 10innodb_read_io_threads = 10innodb_thread_concurrency = 0innodb_purge_threads = 1innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 16Minnodb_log_file_size = 64Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb_buffer_pool_load_at_startup = 1innodb_buffer_pool_dump_at_shutdown = 1innodb_lru_scan_depth = 2000innodb_io_capacity = 4000innodb_io_capacity_max = 8000# 默认参数设置secure-file-priv = NULL# Disabling symbolic-links is recommended to prevent assorted security risks# symbolic-links =0character-set-server = utf8mb4collation-server = utf8mb4_general_cidefault_authentication_plugin = mysql_native_passwordsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION# sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'# # Custom config should go here# !includedir /etc/mysql/conf.d/#----------------优化配置(说明从上到下)# 支持符号链接,就是可以通过软连接的方式,管理其他目录的数据库,最好不要开启,当一个磁盘或分区空间不够时,可以开启该参数将数据存储到其他的磁盘或分区symbolic-links=0# 设置autocommit=0,则用户将一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务(调试模式时使用)#autocommit=0# MySQL读入缓冲区的大小read_buffer_size = 512M# MySQL的随机读缓冲区大小、MySQL的顺序读缓冲区大小read_rnd_buffer_size = 256Msort_buffer_size = 256M# 连接超时时间、保持时间、最大传输数据包大小wait_timeout = 2880000interactive_timeout = 2880000max_allowed_packet = 512M# 连接缓存池大小、临时表大小、临时存放位置join_buffer_size = 512Mtmp_table_size = 128Mtmpdir = /data/mysql-8.0.18/tmp
11、启动mysql
#具体配置需要修改成服务器上对应的路径# --defaults-file# --basedir# --datadir/data/mysql/bin/mysqld_safe --defaults-file=/data/mysql/conf/my.cnf --basedir=/data/mysql/ --datadir=/data/mysql/data
12、登录mysql
/data/mysql/bin/mysql --defaults-file=/data/mysql/conf/my.cnf -uroot -p
13、输入临时密码。临时密码就是第7条root@localhost:后面的内容
14、修改mysql的登录密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';flush privileges;
my.cnf配置的几个参数:
skip-name-resolve 跳过DNS反向解析过程.(这样就不能使用主机名连接mysql了,只能使用ip连接)
skip-grant-tables 跳过授权表(当mysql登陆密码忘记时的解决办法)
skip-networking 跳过TCP/IP连接
skip-host-cache 禁用主机名缓存;要想清除主机名缓存,执行FLUSH HOSTS语句或执行mysqladmin flush-hosts命令
