Linux源码安装MySQL

Linux源码安装MySQL

第一步:环境检查
1.1 查询系统自带的数据库

代码如下:

$ rpm -qa|grep mariadb
1.2 卸载系统自带的Mariadb

若没有系统自带的Mariadb就不用卸载!

代码如下:

$ rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
1.3 删除默认配置文件

删除etc目录下的my.cnf文件,代码如下:

$ rm /etc/my.cnf
1.4 检查mysql及用户组

相关步骤代码如下:

检查mysql是否存在,返回值为空则不存在,如若存在就需要卸载存在的MySQL,卸载方法(如果是新系统一般情况下不存在

$ rpm -qa | grep mysql

检查mysql用户组、用户是否存在,不存在则创建

# 检查mysql用户组
$ cat /etc/group | grep mysql   
# 检查mysql用户
$ cat /etc/passwd | grep mysql  

如果mysql是存在的,这里可以删除mysql用户组mysql用户在重新创建,也可不删除,像我有强迫症的就把它删除了,重新进行了创建,删除方法如下:

# 查询mysql用户组
$ id mysql  
# 删除
$ userdel mysql   
1.5 添加mysql用户组及用户
# 添加mysql用户组
$ groupadd mysql        
# 添加mysql用户到mysql用户组
$ useradd -g mysql mysql 

第二章:下载源码并安装

2.1 下载mysql.tar.gz源码包并且解压

解压代码如下:

$ tar -zxvf mysql-5.7.25-el7-x86_64.tar.gz
2.2 创建mysql安装目录

在usr/local目录下创建mysql安装目录(这里的目录可以自己选择,任意位置都可以,推荐local目录,代码如下

$ mkdir /usr/local/mysql

移动解压后的mysql文件到usr/local/mysql目录里,代码如下

# 我在/usr/usrfiles下解压的
$ mv /usr/usrfiles/mysql-5.5.62-linux-glibc2.12-x86_64/*   /usr/local/mysql/
2.3 创建mysql数据/日志目录

创建mysql的data目录,代码如下

$ mkdir /usr/local/mysql/data

创建mysql的log目录 ,代码如下

$ mkdir /usr/local/mysql/log

进入已经创建好的log目录,创建mysqld.log文件,代码如下

$ touch /usr/local/mysql/log/mysqld.log

更改文件拥有者为mysql ,代码如下

# -R参数为递归的意思
$ chown -R mysql /usr/local/mysql/ 

更改文件所属用户组为mysql ,代码如下:

$ chgrp -R mysql /usr/local/mysql/

第三章:安装mysql

3.1 进入mysql安装目录,安装mysql,代码如下
$ /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

安装这里会出现报错,但是没关系,忽略它的存在,报错原因:mysl5.7版本以后更改了源码安装方式中的mysql_install_db,但是经过我的测试,以前的方法还是可以用的

3.2 创建mysql配置文件

新建配置文件my.cnf,代码如下

# 新建my.cnf
$ vi /etc/my.cnf      
# 赋予my.cnf这个文件777权限,777代表这个文件组用户,用户,其他用户都有权限
$ chown 777 /etc/my.cnf   

my.cnf配置文件内容如下:

[mysqld]
##这里为mysql安装目录
basedir=/usr/local/mysql/  
##这里为mysql的数据源目录
datadir=/usr/local/mysql/data  
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
lower_case_table_names=1
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=innodb
max_allowed_packet=16m

[client]
port=3306

[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
3.3 mysql设置环境变量

编辑/etc/profile文件 ,代码如下

$ vi /etc/profile

添加代码

# 这里为你的mysql安装目录
$ export MYSQL_HOME="/usr/local/mysql/" 
$ export PATH="$PATH:$MYSQL_HOME/bin"

使配置生效,代码如下:

$ source /etc/profile
3.4 设置Mysql为系统服务

进入/usr/lib/systemd/system目录,代码如下

$ cd /usr/lib/systemd/system/

在LInux系统中,如果要把某项服务设置为系统服务,都在这个目录内新建相应的service文件

新建mysql.service系统服务文件,文件内容如下

[Unit]   
Description=mysql
After=network.target remote-fs.target nss-lookup.target

[Service] 
Type=forking
# 这里要换成自己安装mysql的目录
ExecStart=/usr/local/mysql/support-files/mysql.server start  
# 这里要换成自己安装mysql的目录   
ExecReload=/usr/local/mysql/support-files/mysql.server restart
# 这里要换成自己安装mysql的目录  
ExecStop=/usr/local/mysql/support-files/mysql.server stop       
PrivateTmp=true

[Install]
WantedBy=multi-user.target

到此为止

我们已经成功把mysql加入到了系统服务中,可以很方便的管理mysql服务了

刷新系统服务

systemctl daemon-reload

代码如下:

启动mysql服务
$ systemctl start mysql.service
设置开机启动
$ systemctl enable mysql.service
取消开机启动
$ systemctl disable mysql.service
查看服务状态
$ systemctl status mysql.service

第四章 设置mysql常用配置

现在我们启动mysql,并设置一些常用的配置,具体步骤如下

4.1 修改密码

获取初始密码,代码如下:

$ cat /root/.mysql_secret

修改密码,代码如下:

$ mysql  -uroot -p                           # 登录mysql用刚才获取到的初始密码
$ mysql> set PASSWORD = PASSWORD('123456');  # 修改密码
$ mysql> flush privileges;                   # 刷新权限
4.2 允许远程访问

代码如下:

温馨提示:需要在登录Mysql时才可执行允许远程访问的代码

$ mysql> create user 'root'@'%' identified by '123456';
$ mysql> flush privileges;    # 刷新权限

这句话的意思如下

mysql> create user '你想要哪个用户可以远程访问'远程访问的ip'%' identified by '你的数据库密码';

mysql> create user 'username'@'host' identified by 'password'

username  – 你将创建的用户名

host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,

如果想让该用户可以从任意远程主机登陆,可以使用通配符% 

password –该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

取消该用户的远程访问权限

# 取消授权远程访问操作如下:
mysql> use mysql;

mysql> revoke from 'root'@'%';

mysql> flush privileges;
mysql>revoke from '你想要移除远程权限的用户名'@'%';

mysql> revoke from 'username'@'%';

username  – 你将创建的用户名

host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,
通配符%,代表该用户拥有的权限

使用mysql命令进入mysql,mysql -uroot -p,然后输入密码

授权远程访问操作如下三步:

$ use mysql;

# 这里的两个星号,第一个代表任意数据库,第二个代表该数据库的任意表,
$ grant all privileges on *.* to 'root'@'%' identified by 'password';

$ flush privileges;
4.3 删除远程访问权限

取消授权远程访问操作如下:

$ use mysql;

$ revoke all privileges on *.* from 'root'@'%';

$ flush privileges;

删除远程访问用户的第二种办法

mysql -u root -p  # 登录mysql
 
use mysql;      
 
select host,user from user; # 查看用户命令

update user set host = "localhost" where user = "root" and host= "%";
或者使用 delete from user where user="root" and host="%" ;

flush privileges;
4.4 关于mysql的用户的详细命令
新建用户

查看用户命令
select user, host from mysql.user;

创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
 
username:用户名;host:指定在哪个主机上可以登录,本机可用localhost,
%通配所有远程主机;password:用户登录密码;

-------------------------------------------------------------------------
添加远程访问权限

mysql数据库设置用户远程连接权限
grant all privileges on *.* to 'root'@'%' identified by '你的密码' with grant option;
-------------------------------------------------------------------------

创建数据库
CREATE DATABASE 库名;

授予用户在本地服务器对该数据库的全部权限
grant all privileges on dbname.* to zhrt@localhost identified by '123456';
 
 
设置用户testuser,只拥有【查询】操作权限;
grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION;

授予用户通过外网IP对于该数据库的全部权限
grant all privileges on dbname.* to 'zhrt'@'%' identified by '123456';

刷新权限
FLUSH PRIVILEGES;

关闭远程访问
如已有root用户使用localhost可设置为127.0.0.1
update user set host = "localhost" where user = "root" and host= "%";
或者
delete from user where user="root" and host="%" ;

退出mysql
exit;

关闭/启动/重启 mysql
service mysql stop
service mysql start
service mysql restart

查看当前用户: SELECT CURRENT_USER();

查看某个用户的权限:show grants for 'root'@'%'; 

撤销用户权限:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';


privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
设置完mysql需要重启服务
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wudskq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值