下载安装包
MySQL离线安装包下载地址:https://dev.mysql.com/downloads/mysql/
在安装过程,经常会报error while loading shared libraries: libaio.so.1,这是由于缺少libaio库,下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=libaio(x86-64)
安装
-
将mysql和libaio安装包都上传到指定服务器;
-
解压mysql包,如果是xz后缀的文件不要认为成了gz,它就是个普通的tar包,使用tar -xvf解压就行;
-
将解压出来的目录移动到/usr/local目录下,并修改目录名为mysql,命令示例:mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql
注意:这里直接移动到此目录是为了后续方便安装,因为mysql默认的日志、数据等目录都定义在此目录下,如果在别的目录,后续安装修改起来就非常麻烦,这里也需要注意一下目录空间的规划; -
安装libaio库:rpm -ivh libaio-0.3.112-1.el8.x86_64.rpm
-
创建mysql配置文件,此配置需要手动创建:vi /etc/my.cnf,在文件中写入如下信息:
[client]
default-character-set=utf8mb4
port=3306
socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set=utf8mb4
[mysqld]
server-id=1
port=3306
user=root
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
# default 100
max_connections=1000
# default 16M
key_buffer_size=64M
# default 128M
innodb_buffer_pool_size=128M
# The maximum packet size that the client can send
max_allowed_packet=128M
max_connect_errors=1000
lower_case_table_names=1
-
创建mysql目录和用户;
groupadd mysqlgroup;
useradd -g mysqlgroup mysql;
mkdir -p /var/lib/mysql;
chown -R mysql:mysqlgroup /var/lib/mysql;
ln -s /usr/local/mysql/bin/mysql /usr/bin; // 创建mysql命令的软链接
注意:一定要创建一个非root的用户来安装,mysql不允许以root用户运行 -
初始化mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
执行过程中会出现一个初始密码,如图,需要记录下来,后面有用:
注意:–lower-case-table-names=1参数一定要注意,必须和my.cnf中的lower_case_table_names配置参数保持一致,且此参数必须在初始化和my.cnf配置文件中同时设置,任意一边不设置或值不相同都会导致安装失败。值为1时表示对表名和字段名等大小写不敏感,不为1时,比如在对表进行增删改查时,大小写敏感,一个字母大小写不对就会导致报错。 -
启动mysql
/usr/local/mysql/support-files/mysql.server start
stop停止服务,restart重启服务 -
修改默认设置
登录mysql:mysql -uroot -p – 回车后输入之前记录的初始密码
登录完成后执行如下语句:
--修改初始密码并设置密码永不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
--修改加密规则,不修改将无法使用Navicat工具登录
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
use mysql;
--开启远程访问,host从localhost修改为%,若不修改,远程访问无法连接
update user set host='%' where user='root';
--赋予执行XA RECOVER语句的权限,不修改将无法使用XADataSource处理分布式事务
GRANT XA_RECOVER_ADMIN ON . TO root@'%';
commit;
FLUSH PRIVILEGES;
exit;