本文记录在Linux服务器上安装mysql的流程和其中需要注意的事项:
一.首先下载mysql,这里还是贴一下下载的地址和版本选择情况:
下载地址:https://dev.mysql.com/downloads/mysql/ 选择如下图中标注的版本
二. 选择在usr/local下放置mysql安装包:
2.1 首先解压文件,由于mysql最新的下载文件格式为xz格式,所以这里必须使用 tar -Jvf命令,解压成功后,为了看的顺眼,将该文件夹重命名为mysql
tar -xvJf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql
2.2 在mysql文件夹下创建data文件夹,旧版本中该文件夹是有的,新版本后已没有。
mkdir data
三 . my.cnf文件配置:旧版本中,在support-files文件夹下会有示例的my.cnf文件,但8.0的版本已没有,所以这边需要你自己去建一下my.cnf,注意:是在/etc文件夹下创建。这边我给出我的相关配置
[mysqld]
#表名称不区分大小写
lower_case_table_names=1
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
#skip password auth
#skip-grant-tables
back_log=800
wait_timeout=7200
interactive_timeout=7200
max_connections=1800
max_user_connections=1800
sync_binlog=0
innodb_flush_log_at_trx_commit=2
read_buffer_size=12M
sort_buffer_size=12M
read_rnd_buffer_size=12M
tmp_table_size=128M
max_heap_table_size=128M
innodb_buffer_pool_size=1000M
join_buffer_size=8M
net_read_timeout=250
net_write_timeout=300
innodb_lock_wait_timeout=800
default_authentication_plugin=mysql_native_password
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#Settings user and group are ignored when systemd is used.
#If you need to run mysqld under a different user or group,
#customize your systemd unit file for mariadb according to the
#instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#
#include all files from the config directory
#
!includedir /etc/my.cnf.d
四.创建mysql用户组及用户
groupadd mysql
useradd -g mysql mysql
五.更改目录权限
chown -R mysql:mysql /tmp/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /tmp/mysql /usr/local/mysql
六.初始化
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
注意:
1.在这个步骤中如果报如下错误的话:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要执行如下命令安装libaio :yum install -y libaio
2.系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,会提示找不到命令,我们需要做的就是映射mysql的相关命令到/usr/bin目录下,相当于建立一个链接文件。
ln -s /usr/local/mysql/bin/mysql /usr/bin
七.第六步结束后,mysql的安装工作基本结束,下面是一些在第一次安装时基本都会用到的相关配置:
- 更改密码:
1.首先打开my.cnf,去掉注释skip-grant-tables,然后重启一下mysql,命令
./support-files/mysql.server start
2.此时可以无密码登陆了,然后进行修改密码:这里要注意:mysql8.0版本不能再用
update user set authentication_string=password(“123”) where user=‘root’;这种方式修改密码。
mysql -u root
use mysql;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
- 设置自启动
cd support-files
cp mysql.server /etc/init.d/mysql
#赋予该文件修改和执行权限
chmod 755 /etc/init.d/mysqlcd /etc/init.d
#添加该服务到系统中
chkconfig --add mysqlchkconfig --level 2345 mysql on
service mysql restart
- 远程连接:
远程连接的意思,就是你允许任何机器可以连接mysql,所以需要修改root下对应的host字段为%;
1.在 my.cnf 的mysqld 下设置密码格式,否则很多客户端不支持最新mysql默认的加密格式
#在上面提供的my.cnf文件中已添加该配置,如果你的my.cnf文件中没有配置,请添加
default_authentication_plugin=mysql_native_password
2.登陆mysql,执行如下命令
use mysql
#清空密码
update user set host ='%' where user='root';
#更新密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
#如果上面命令执行的时候提示如下错误
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
则执行命令即可:FLUSH PRIVILEGES;
最后再执行一次: FLUSH PRIVILEGES;
OK,如果你到了这一步,那么安装mysql时所需要的常见配置你都已经全部完成了,接下来就享受myql之旅吧!