官网参考地址: https://dev.mysql.com/doc/refman/8.0/en/
本次使用centos8安装mysql8作为示例
linux系统版本: CentOS 8.3 64位
安装源文件版本:mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
mysql安装位置:/software/mysql/8.0.27
数据库文件数据位置:/software/mysql/data
数据库log文件地址:/software/mysql/log
注意:如果不懂shell脚本,最好把数据目录和日志目录都放在安装目录下,也就是把data和log目录放在8.0.27下面
因为,后面修改mysql.server和mysqld_safe脚本需要配置安装目录和目录
注:未防止混淆,这里都用绝对路径执行命令
除了文件内容中的#表示注释,这里所有带#都是linux命令
>mysql 是mysql的命令
步骤:
1、在根目录下创建文件夹
#mkdir /software/mysql
#mkdir /software/mysql/data
#mkdir /software/mysql/log
2、上传mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz文件到/software下
#cd /software/
#xz -d mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
#tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar
解压后得到mysql-8.0.27-linux-glibc2.12-x86_64安装文件。
注意:看看解压时有没有报错,如果有报错,可能是下载的包有问题,这样解压出来的文件是没有myslqd的,这个在初始化会用到。
3、移动安装文件目录到/software/mysql下并重命令
# mv /software/mysql-8.0.27-linux-glibc2.12-x86_64/ /software/mysql/8.0.27
4、安装libaio依赖包,由于我买的腾讯云服务器centos系统自带的有这个依赖包所以不需要安装,不过自带的依赖包会报错,后面介绍解决办法
查询是否暗转libaio依赖包
#yum search libaio
如果没安装,可以用下面命令安装
#yum install libaio
5、修改mysql配置文件(contos8的/etc目录下是没有my.cnf文件的,自己手动新建一个my.cnf文件)
#vi /etc/my.cnf
将以下内容复制进去,注意,我这里的端口配置的是20010,自己根据自己的需求设置
~~~~~~~~~ 内容开始 ~~~~~~~~~~~~~
[client]
port=20010
socket=/software/mysql/data/mysql.sock
[mysql]
port=20010
socket=/software/mysql/data/mysql.sock
[mysqld]
#端口
port=20010
#操作数据库用户
user=mysql
#mysql安装目录
basedir=/software/mysql/8.0.27
#mysql数据目录
datadir=/software/mysql/data
#服务器在其中写入其进程 ID 的文件的路径名
pid-file=/software/mysql/data/mysql.pid
socket=/software/mysql/data/mysql.sock
#事务隔离级别
transaction_isolation=READ-COMMITTED
#不区分大小写
lower_case_table_names=1
#禁用DNS域名解析
skip-name-resolve=ON
#UPDATE并且 DELETE在WHERE子句或LIMIT子句中不使用键的 语句会产生错误
#sql_safe_updates=ON
#允许连接mysql的ip地址,多个值用逗号隔开
#bind_address=
#服务器在响应之前等待连接数据包 的秒数
connect_timeout=30
#默认身份验证插件
default_authentication_plugin=mysql_native_password
#错误日志文件
log_error=/software/mysql/log/error.log
#开启记录慢查询日志
slow_query_log=1
#一般查询日志和慢查询日志输出的目的地
log_output=FILE
#sql查询日志输出文件
slow_query_log_file=/software/mysql/log/mysql-slow.log
#慢查询sql标准
long_query_time=5
#允许的最大并发客户端连接数
max_connections=2000
max_connect_errors=1000
#服务器在关闭交互式连接之前等待活动的秒数
interactive_timeout=86400
#服务器在关闭非交互式连接之前等待活动的秒数
wait_timeout=86400
~~~~~~~~~ 内容结束 ~~~~~~~~~
保存退出
6、修改mysl.server脚本
#vi /software/mysql/8.0.27/support-files/mysql.server
主要是修改,安装目录、数据目录、日志目录,pid文件(不懂shell脚本的,找到所有/usr/local/myql,更换成自己的安装目录)
7、修改安全启动脚本
#vi /software/mysql/8.0.27/bin/mysqld_safe
主要是修改,安装目录、数据目录、日志目录,pid文件
8、创建mysql用户组和mysql用户
#groupadd mysql
#useradd -r -g mysql mysql
9、关联myql用户到mysql用户组中
#chown -R mysql:mysql /software/mysql/
#chown -R mysql /software/mysql/
10、赋予安装权限
#chmod 750 /software/mysql/8.0.27/
11、初始化mysql命令
#cd /software/mysql/8.0.27/bin
下面这个命令是说,使用/etc/my.cnf的配置初始化mysql
#./mysqld --defaults-file=/etc/my.cnf --initialize
初始化完成后,mysql的初始密码在/software/mysql/log/error.log里面
12、启动服务
#cp /software/mysql/8.0.27/support-files/mysql.server /etc/init.d/mysql.server
#/etc/init.d/mysql.server start
13、登录mysql
#cd /software/mysql/8.0.27/bin
#./mysql -uroot –p
如果出现下面的错误
安装缺少的依赖
#yum install libncurses*
安装完再次启动
14、修改初始密码
>mysql ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义密码';
>mysql use msyql;
修改用户权限可远程连接mysql
14.1 简单粗暴的方法——msyql官网不建议使用,所以慎用
>mysql update user set host = '%' where user = 'root' and host = 'localhost';
官网推荐到的方法
14.2 创建一个新用户
>mysql CREATE USER 'admin'@'%' IDENTIFIED BY '自定义密码';
授权(拥有所有权限)
>mysql GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;
刷新权限
>mysql FLUSH PRIVILEGES;