MySQL 依赖 libaio 库。如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败。
MySQL 5.7.19 及更高版本:对非统一内存访问 (NUMA) 的支持已添加到通用 Linux 构建中,该构建现在依赖于 libnuma库。
yum -y install libaio numactl
MySQL二进制包中的包含文件:
| 目录 | 目录内容 |
|---|---|
| bin | 存放 MySQL 客户端、服务器的可执行文件,比如 mysql、mysqld 等 |
| docs | MySQL 手册 |
| man | Unix 手册 |
| include | 头文件 |
| lib | 相关库 |
| share | 数据库安装的错误消息、字典和 SQL |
| support-files | 其他支持文件 |
创建mysql安装目录
mkdir -p /datatar xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /datamv /data/mysql-5.7.38-linux-glibc2.12-x86_64 /data/mysql-5.7.38
创建配置文件vim /data/mysql-5.7.38/my.cnf
[mysqld]bind-address=0.0.0.0port=3306user=mysqlbasedir=/data/mysql-5.7.38log-error=/data/mysql-5.7.38/mysql.errdatadir=/data/mysql-5.7.38/mysql-datapid-file=/data/mysql-5.7.38/mysql.pidsocket=/tmp/mysql.sock#character configcharacter_set_server=utf8mb4symbolic-links=0
创建mysql用户和组
groupadd mysqluseradd -r -g mysql -s /bin/false mysqlchown mysql:mysql -R /data/mysql-5.7.38
初始化数据目录
/data/mysql-5.7.38/bin/mysqld --defaults-file=/data/mysql-5.7.38/my.cnf --user=mysql --initialize
PS:初始化执行结束后,MySQL初始密码会记录在/data/mysql-5.7.38/mysql.err中。
启动MySQL
/data/mysql-5.7.38/bin/mysqld_safe --defaults-file=/data/mysql-5.7.38/my.cnf &
登录MySQL并修改密码
#登录/data/mysql-5.7.38/bin/mysql -u root -p#修改密码ALTER USER USER() IDENTIFIED BY 'xxxx';
将mysql命令添加到PATH变量
为了避免在使用MySQL时总是输入客户端程序的绝对路径,可以将/data/mysql-5.7.38/bin目录添加到PATH变量中:vim /etc/profile
export PATH=$PATH:/data/mysql-5.7.38/bin
配置systemd管理MySQL
vim /usr/lib/systemd/system/mysqld.service
[Unit]Description=MySQL ServerAfter=network.service[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlType=forkingTimeoutSec=0PermissionsStartOnly=trueExecStart=/data/mysql-5.7.38/bin/mysqld --defaults-file=/data/mysql-5.7.38/my.cnf --daemonizeLimitNOFILE=5000Restart=on-failureRestartSec=10RestartPreventExitStatus=1PrivateTmp=false
配置root用户可以远程访问
切换mysql数据库use mysql;查看root信息SELECT `Host`,`User` FROM user where user="root";更新用户表:(其中%的意思是允许所有的ip远程访问,如果需要指定具体的某个ip就写上具体的ip即可)UPDATE user SET `Host` = '%' WHERE `User` = 'root' and host='localhost' LIMIT 1;刷新权限:flush privileges;如果仍不可访问,就需要设置访问权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
