最近实在太忙了,深陷于技术&业务项目中,公众号也好久没更新了。
同时,自己也好久没有学习了。
切入正题吧!
最近在做一个技术项目,需要涉及到数据库的操作,而服务器上,没有安装linux,故只能自己安装了,本文主要记录于安装步骤及安装过程中遇到的一些问题。
1、新建存放mysql包目录
mkdir mysql
2、下载mysql包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
3、由于下载的文件是tar.xz,故需要进行两部解压
xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xztar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar
4、将解压的文件移动到/usr/local/mysql中
sudo mv mysql-8.0.20-linux-glibc2.12-x86_64.tar /usr/local/mysql
5、在/usr/local/mysql中创建data文件夹
mkdir /usr/local/mysql/data
6、创建mysql用户组及用户
sudo groupadd mysql useradd -r -g mysql mysql
7、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysqlchmod -R 755 /usr/local/mysql
8、查询系统中是否安装了libaio,若没有,需安装
yum search libaio // 查询是否安装yum install libaio // 安装libaio
9、初始化mysql,并生成初始密码
cd /usr/local/mysql/bin./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
在这里可能会报错
是因为libnuma安装的是32位,我们这里需要64位的,执行下面语句就可以解决
yum install numactl.x86_64
10、继续执行第9步
cd /usr/local/mysql/bin./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
会在命令最后一行生成密码,此字符串为mysql管理员临时登录密码,务必要手动记下来,在登录时,需要用到
11、编辑my.cnf
cd /etcchmod 777 my.cnfvi my.cnf // 复制下面my.cnf文件,覆盖
[client]no-beepsocket =/usr/local/mysql/mysql.sock# pipe# socket=0.0port=3306[mysql]#原文的utf8指向UTF8MB3,后续版本要改为UTF8MB4,一步到位吧default-character-set=UTF8MB4[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport=3306pid-file=/software/mysql/mysqld.pid#skip-grant-tablesskip-name-resolvesocket = /usr/local/mysql/mysql.sockcharacter-set-server=utf8default-storage-engine=INNODBexplicit_defaults_for_timestamp = true# Server Id.server-id=1max_connections=2000#query_cache_size在8.0版本已经移除,故注释#query_cache_size=0table_open_cache=2000tmp_table_size=246Mthread_cache_size=300#限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用thread_stack = 192kkey_buffer_size=512Mread_buffer_size=4Mread_rnd_buffer_size=32Minnodb_data_home_dir = /data/mysqlinnodb_flush_log_at_trx_commit=0innodb_log_buffer_size=16Minnodb_buffer_pool_size=256Minnodb_log_file_size=128Minnodb_thread_concurrency=128innodb_autoextend_increment=1000innodb_buffer_pool_instances=8innodb_concurrency_tickets=5000innodb_old_blocks_time=1000innodb_open_files=300innodb_stats_on_metadata=0innodb_file_per_table=1innodb_checksum_algorithm=0back_log=80flush_time=0join_buffer_size=128Mmax_allowed_packet=1024Mmax_connect_errors=2000open_files_limit=4161#query_cache_type在8.0版本已经移除,故注释#query_cache_type=0sort_buffer_size=32Mtable_definition_cache=1400binlog_row_event_max_size=8Ksync_master_info=10000sync_relay_log=10000sync_relay_log_info=10000#批量插入数据缓存大小,可以有效提高插入效率,默认为8Mbulk_insert_buffer_size = 64Minteractive_timeout = 120wait_timeout = 120log-bin-trust-function-creators=1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES## include all files from the config directory#!includedir /etc/my.cnf.d
chmod 644 my.cnf // 务必改回权限,否则报错
12、添加软链
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
13、启动mysql
sudo /etc/init.d/mysqld start
若报错
Starting MySQL... ERROR! The server quit without updating PID file
执行
ps -ef|grep mysqlkill -9 pid // mysql进程pid
重新启动mysql
sudo /etc/init.d/mysqld start
14、启动成功后,登录mysql,修改密码(密码为步骤9生成的临时密码)
mysql -u root -p#输入临时密码
在mysql的命令解析器中,设置密码
mysql> ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '新密码';mysql> FLUSH PRIVILEGES;
15、执行到这里,mysql数据库已经安装完毕且可以使用了,但是,若我们需要远程通过mysqlworkbench等类似来访问,就要再执行一步了
16、开放远程链接
mysql> use mysql;mysql> update user set user.Host='%' where user.User='root';mysql> flush privileges;
由于在安装过程中,截图未保存,故从网络上获取,若有疑问之处,可在评论区留言,晚安哦,各位~~~
参考链接: