最近实在太忙了,深陷于技术&业务项目中,公众号也好久没更新了。

同时,自己也好久没有学习了。

切入正题吧!

最近在做一个技术项目,需要涉及到数据库的操作,而服务器上,没有安装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

在这里可能会报错

mysql32 windows安装教程 mysql安装32位_linux 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管理员临时登录密码,务必要手动记下来,在登录时,需要用到

mysql32 windows安装教程 mysql安装32位_linux 安装_02

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;

由于在安装过程中,截图未保存,故从网络上获取,若有疑问之处,可在评论区留言,晚安哦,各位~~~

参考链接:

https://www.jianshu.com/p/276d59cbc529

https://www.jb51.net/article/181476.htm