1. 检查是否有安装mysql,有就删除
rpm安装查看:rpm -qa |grep mysql
dpkg安装查看:dpkg-l|grep mysql
yum安装查看:yum list installed|grep mysql
源码安装查看:查看是否有mysql文件
2. 下载最新版mysql
https://dev.mysql.com/downloads/mysql/
选择Linux Generic通用版和Compressed TAR Archive压缩源码,选择不登陆直接下载
3. 解压重命名
tar -zxvf *.tar.gz
tar-xvJf *.tar.xz // 一般后缀为这个解压
mv* mysql //*为文件名
4. 添加组和用户并创建存储文件夹
groupadd mysql //添加组
useradd -r -g mysql mysql //为组添加用户mkdir /app/software/mysql_data // 创建数据存储文件夹
5. 初始化mysql
./bin/mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --basedir=/app/source/mysql --datadir=/app/software/mysql_data
# 使用mysql用户权限进行初始化,并设置数据读写忽略大小写,初始化密码为空,和确定初始化mysql文件夹于存储文件夹
# 如报错libaio.so.1, 则:yum install libaio
6. 修改配置/etc/my.cnf
[mysqld]
server-id = 1user = mysql #指定用户,使用配置启动安全需求
port= 3306mysqlx_port= 33060mysqlx_socket= /tmp/mysqlx.sock
datadir= /app/software/mysql_data
socket= /tmp/mysql.sock
pid-file = /tmp/mysqld.pid
log-error =error.log #默认mysql_data目录
slow-query-log = 1slow-query-log-file =slow.log
long_query_time= 0.2log-bin =bin.log
relay-log =relay.log
binlog_format=ROW
relay_log_recovery= 1character-set-client-handshake =FALSE
character-set-server =utf8mb4
collation-server =utf8mb4_unicode_ci
init_connect= 'SET NAMES utf8mb4'innodb_buffer_pool_size=1G
join_buffer_size=128M
sort_buffer_size=2M
read_rnd_buffer_size=2M
log_timestamps=SYSTEM
lower_case_table_names= 1
default-authentication-plugin = mysql_native_password
7. 更改权限,添加服务
chown -R mysql:mysql /app/software/mysql_data #修改所有者
chmod -R 777 /app/software/mysql_data #增加权限
./support-files/mysql.server文件中修改:
basedir=/app/source/mysql
datadir=/app/software/mysql_data
cp-a ./support-files/mysql.server /etc/init.d/mysql #添加服务
service mysql start/stop/restart #测试启动,如报错,查看error.log,根据错误提示解决
8. 设置全局
修改/etc/profile文件,在export PATH...上面:
#set formysql
export MYSQL_HOME=/app/mysql
export PATH=$PATH:$MYSQL_HOME/bin
刷新配置source/etc/profile
9. 开机启动
# 设置开机启动
touch/usr/lib/systemd/system/mysql.service
[Unit]
Description=mysql
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/source/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE= 5000#Restart=on-failure
#RestartPreventExitStatus=1#PrivateTmp=false[Install]
WantedBy=multi-user.target
systemctl start/stop/restart mysql.service #启动服务
systemctl enable mysql.service #设为开机启动
10 新增用户和权限
use mysql;
create user username identified by'password';select host, user fromuser;
show grantsforusername;
grant all on 数据库.* to 'username'@'%';
flush privileges;