Linux 下 mysql 的安装

1、下载安装包

去到mysql官网 https://www.mysql.com/downloads/ 下载对应的安装包
选择 MySQL Community Server,我这里下载的是 mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

2、安装 mysql

1.上传压缩文件到服务器,并解压文件 tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
*.tar.xz文件解压要分两步,但我上面直接解压也成功了

xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

2.将解压后目录复制到安装目录/usr/local/下并更改文件名
mv -r mysql-8.0.13-linux-glibc2.12-x86_64 /usr/local/mysql
在目录下新建一个文件夹data,用于存放数据 mkdir /usr/local/mysql/data

3.添加mysql组和用户
groupadd mysql
useradd -r -g mysql mysql
把安装目录的权限给到 mysql组的mysql用户
chown -R mysql:mysql /usr/local/mysql

让mysql运行的时候使用一个独立的账号,如果mysql被黑了那么开始拿到的权限就是那个创建的账号而不是默认的root
我们在编译安装的时候创建一个mysql组和一个mysql用户,并把datadir和安装目录属主改为mysql,在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即便mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全

4.配置my.cnf文件
修改 /etc/my.cnf 文件

user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock

5.初始化mysql 配置
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

  • mysql5.7之前命令是:bin/mysql_install_db --user=mysql,之后的版本已经被mysqld --initialize替代,后面的配置在my.cnf配置了,也可以不带
  • 如果没有异常,会自动生成账号root和密码
  • 2018-12-11T01:31:14.713646Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 128876
    2018-12-11T01:31:19.886238Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: l;PS>rl4sl(B
    2018-12-11T01:31:21.653302Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed
    

3、启动服务、配置账号密码

1)开启服务

/usr/local/mysql/bin/mysqld_safe --user=mysql &
&是后台运行的意思,执行命令之后,终端会卡在一个位置,再按一下Enter即可

执行后报了个错
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
很明显是因为路径文件不存在,且需要给mysql权限,之前在配置 /etc/my.cnf时,里面的配置为
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
创建这个路径,并授权给mysql,重新开启服务
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/

2)加入开机自启项

1.将{mysql}/support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

2.注册启动服务
chkconfig --add mysql
查看chkconfig --list mysql

使用 service 启动:service mysql start
使用 service 停止:service mysql stop
使用 service 重启:service mysql restart

3)环境变量

配置全局环境变量,可以在其他位置使用 mysql
编辑 / etc/profile 文件
vim /etc/profile
在 profile 文件底部添加如下,保存后退出
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
设置环境变量立即生效
source /etc/profile

4)修改密码,创建用户

1.登录
mysql -uroot -p 密码使用初始化时生成的密码

2.修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '***';

这里修改密码的时候加上 with mysql_native_password,mysql_native_password 8.0改变了 身份验证插件caching_sha2_password, 打开 my.ini (或者my.cofg) 可以看到变更了 5.7及其以前的方式mysql_native_password

3.创建用户,并授予权限
create user 'zou'@'%' identified with mysql_native_password by '***';
grant replication slave on *.* to 'zou'@'%';
flush privileges; //刷新
可以使用该账号远程连接

4.可以修改root用户可远程连接
update mysql.user set host='%' where user = 'root';

猜你喜欢

转载自blog.csdn.net/e_zxq/article/details/86141020