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