ubuntu系统MySQL服务环境安装(5.7.33)

64 阅读3分钟

mySQL服务环境安装 进入local目录

cd /usr/local/

下载安装包(根据需要寻找可用的下载包链接)

sudo wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

解压文件

sudo tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
sudo mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql

创建用户和用户组

sudo groupadd mysql
sudo useradd -r -g mysql mysql

创建文件赋予权限

sudo mkdir -p /usr/local/mysql/data
sudo mkdir -p /usr/local/mysql/runlog/logerror
sudo mkdir -p /usr/local/mysql/runlog/socketlog
sudo mkdir -p /usr/local/mysql/runlog/pidlog

sudo chown -R mysql:mysql /usr/local/mysql/data
sudo chmod -R 755 /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql/runlog
sudo chmod -R 755 /usr/local/mysql/runlog

或者 对整个目录赋予权限

sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod -R 755 /usr/local/mysql

创建目录

sudo touch /etc/my.cnf
sudo vim /etc/my.cnf
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=150
max_connect_errors=10
lower_case_table_names=1
character-set-server=utf8mb4
socket=/usr/local/mysql/runlog/socketlog/mysql.sock
symbolic-links=0
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp = ON


[mysqld_safe]
socket=/usr/local/mysql/runlog/socketlog/mysql.sock
log-error=/usr/local/mysql/runlog/logerror/mysql.err
pid-file=/usr/local/mysql/runlog/pidlog/mysql.pid

[mysql]
default-character-set=utf8mb4
socket=/usr/local/mysql/runlog/socketlog/mysql.sock

[client]
default-character-set=utf8mb4
socket=/usr/local/mysql/runlog/socketlog/mysql.sock

日志文件赋权限 【注】一定要先创建日志空文件,否则启动会报权限或者找不到问题;

sudo touch /usr/local/mysql/runlog/logerror/mysql.err
sudo chown -R mysql:mysql /usr/local/mysql/runlog/logerror/mysql.err
sudo chmod -R 755 /usr/local/mysql/runlog/logerror/mysql.err

高版本ubuntu系统,直接运行mysql会抛异常,需要下载相关依赖 下载 libaio1包

sudo wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.110-5_amd64.deb
sudo dpkg -i libaio1_0.3.110-5_amd64.deb

初始化mysql 一定要先修改配置文件再初始化,否则会遇到启动失败问题 进入bin目录:

cd /usr/local/mysql/bin

执行

sudo ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

执行完后会在日志的最后一行有类似字样的文字,,一定要记住或者 复制 到其他地方,登陆mysql需要用到,否则之后再找的话,有些费劲。

A temporary password is generated for root@localhost: uaqdAOonQ9-H 临时登录密码为 uaqdAOonQ9-H

启动mysql 为mysql创建软链接,方便操作

sudo ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

sudo chmod +x /etc/init.d/mysql

sudo update-rc.d mysql defaults

sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5

sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

service mysql start

运行结果含有 “Starting MySQL. SUCCESS! ”字样启动成功。

10、服务器登陆mysql

mysql -u root -puaqdAOonQ9-H

登录成功后,执行命令修改用户默认登陆密码:

set password for root@localhost = password('FVuB8kDIke/S');

创建外部访问用户

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'x0@a1JMmFS';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;

查看当前用户

SELECT User, Host FROM mysql.user;

后面登录

mysql -u root -pFVuB8kDIke/S

设置开启远程访问:

use mysql;ls
update user set user.Host='%' where user.User='remote_user';
#或者允许指定网段:host = '192.168.137.%'
flush privileges;

参数优化 登陆mysql后:

SET GLOBAL explicit_defaults_for_timestamp = ON;

查看是否生效:

SHOW VARIABLES  LIKE '%explicit_defaults_for_timestamp%';
SET sql_mode ='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

查看是否生效:

SHOW VARIABLES  LIKE '%sql_mode%';

创建mysql服务文件

sudo vim /etc/systemd/system/mysql.service

文件内容

[Unit]
Description=MySQL Community Server
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/mysql start
ExecStop=/etc/init.d/mysql stop
ExecReload=/etc/init.d/mysql reload
TimeoutSec=300
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload #重启
sudo systemctl enable mysql #设置自启
sudo systemctl start mysql #启动

查看mysql服务状态

sudo systemctl status mysql.service 

#输出即可Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

验证:

重启服务器: reboot

查询mysql进程: ps -aux | grep mysql