当前位置:   article > 正文

MySQL安装使用详解 Centos环境_mysql linux

mysql linux

01-安装MySQL并启动

   1.1 环境准备

# 1.卸载mariadb,否则安装mysql会出现冲突
    (1).执行命令rpm -qa | grep mariadb   会列出所有被安装的mariadb rpm 包;
    (2).执行命令rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    

   1.2本地安装(5.6版本默认root没有密码)

上传下载好的软件包到系统中

# 0.执行本地安装包之前必须先安装vim
yum install -y vim
# 1.安装步骤
rpm -ivh perl-*
rpm -ivh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.6.42-2.el7.x86_64.rpm

    1.3 在线安装(我选择的是在线安装,安装的是mysql5.7版本)

# 1.添加官方的yum源创建并编辑mysql-community.repo文件
vi /etc/yum.repos.d/mysql-community.repo
# 2.粘贴以下内容到源文件中
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
#注意:如果需要安装mysql5.7只需要将baseurl修改即可
# 3.安装mysql
sudo yum install -y mysql-community-server

    1.4 设置root用户密码

# 1.启动mysql数据库
[root@localhost mysql]# systemctl start mysqld
# 2.查看mysql版本号
[root@bogon usr]# mysql -V
# 3.修改mysql数据库密码    
mysqladmin -u root -p password 回车 输入原始密码 在输入新的密码
注意:5.7之前版本安装完成之后没有密码,mysql5.7之后的版本的初始密码是随机生成的,放在了 /var/log/mysqld.log
使用命令 cat/var/log/mysqld.log 读出来即可 ,mysql5.6之后没有初始密码,可以使用:mysql -u root 命令直接登录,不用输入密码
mysql5.6版本修改密码,使用命令: mysqladmin -u root -p  password 'Root!123' ,因为mysql5.6没有初始密码-p后面不用输入密码,在password输入新密码,Root!123是新密码
# 4.登录mysql
[root@localhost mysql]# mysql -u root -p
查看mysqld.log文件分配的临时密码

安装之后目录分构,有时候usr/lib/mysql没有mysql文件,但是不要慌,这块没有仔细研究,但是只要能启动运行就证明安装成功

    1.5 开启远程访问

# 1.安装完成mysql时,发现mysql数据库,不允许我们远程连接需要修改设置

# 2.登录mysql,并选择使用mysql数据库

# 3.查看mysql库中的所有表

# 4.查询user表

# 5.执行如下命令
grant all privileges on *.* to 'root'@'%' identified by 'root账号的密码' with grant option;

# 6.刷新权限
flush privileges;

# 7.重启服务
systemctl restart mysqld
# 8.关闭防火墙
systemctl stop firewalld
# 9.测试连接

这时如果你还是不能访问,数据库报:10038,查看你的云服务器(在关闭防火墙的前提下)
如果是腾讯云服务器:在防火墙添加一条开放mysql 3306端口,然后再次测试就可以了。
    

    1.6 配置mysql的环境变量

1.修改/profile文件
vi /etc/profile
2.在文件的末尾,添加如下代码
export MYSQL_HOME=mysql安装目录(/usr/local/mysql-5.7.36)
export PATH=$PATH:$MYSQL_HOME/bin
3.刷新文件
source /etc/profile
4.测试,切换到根目录然后登陆mysql,没有提示无法识别mysql说明配置成功
cd /
mysql -uroot -p

 02-Linux中MySQL操作详解

    2.1 修改mysql登录密码

    
    首先登录mysql
mysql -u root -p
    
    然后输入修改密码
set password for username @localhost = password(newpwd);
#username:账号(root)
#newpwd:新密码

    2.2忘记密码,找回密码

    
    第一步:修改my.cnf文件
vi /etc/my.cnf
 
    第二步:在[mysqld]下 加上 skip-grant-tables  如下:
[mysqld]
datadir=/var/lib/mysql
skip-grant-tables
    第三步:重启mysql
systemctl restart mysqld
    第四步:登陆mysql,输入账号直接回车
mysql -u root
    
    第五步:修改密码
update mysql.user set authentication_string=PASSWORD('Root!123') where User='root';
    第六步:刷新
flush privileges;
    第七步 改回my.cnf重启mysql
        登陆后任何操作都会提示如下信息
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    
        再次刷新一下密码
set password for root@localhost = password('Root!123');
        最后刷新一下
flush privileges;

    2.3 linux卸载mysql

     首先查看mysql的安装情况
rpm -qa|grep -i mysql
    
    显示之前安装了:
MySQL-client-5.5.25a-1.rhel5
MySQL-server-5.5.25a-1.rhel5
     停止mysql服务,并删除包, 删除命令: rpm -ev 包名
systemctl stop mysqld
rpm -ev MySQL-client-5.5.25a-1.rhel5
rpm -ev MySQL-server-5.5.25a-1.rhel5
     如果提示依赖包错误,则使用以下命令尝试
rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
     查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
    
    查找结果如下:
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
     删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
    注意: 卸载后  /etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
    再次查找机器是否安装mysql
rpm -qa|grep -i mysql
    无结果,说明已经卸载彻底,接下来直接安装mysql即可

03-MySQL主从复制

# 0.架构规划
192.168.202.201 master 主节点
192.168.202.202 slave 从节点
# 1.修改mysql的配置文件
[root@localhost mysql]# vim /etc/my.cnf
# 2.分别在配置文件中加入如下配置
主数据库
server-id=1
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
从数据库
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
注意:两个机器的server-id不能一致,该配置要配置在[mysqld]下,配置在别的下面无效!

# 3.重启mysql服务
systemctl restart mysqld
# 4.登录mysql执行如下命令检测配置是否生效,如果value值和你配置的server-id一致,证明配置成功
SHOW VARIABLES like 'server_id';

# 5.登录master节点执行如下命令
show master status;

# 6.登录从节点执行如下命令:
change master to
master_host='192.168.80.129',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000001',
master_log_pos=120;

# 7.开启从节点
start slave;
扩展关闭从节点命令
stop slave;

# 8.查看从节点状态
show slave status\G;
************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.15.0.9
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注意:
1.出现 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说名成功,
2.如果在搭建过程出现错误,可以查看查看错误日志文件 cat /var/log/mysqld.log
# 9.通过客户端工具进行测试
# 10.关闭主从复制(在从节点执行)
stop slave;
注意:如果出现Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593错误,请执行如下命令,rm -rf /var/lib/mysql/auto.cnf删除这个文件,之所以会出现这样的问题,是因为我的从库主机是克隆的主库所在的主机,所以auto.cnf文件中保存的UUID会出现重复. 

04-读写分离

4.1 MyCat引言
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设.

4.2 安装Mycat
# 1.下载mycat
http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
# 2.解压mycat
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

# 3.查看解压之后目录]
[root@localhost mycat]# ls
总用量 12
drwxr-xr-x. 2 root root 190 10月 14 22:58 bin
drwxrwxrwx. 2 root root 6 3月 1 2016 catlet
drwxrwxrwx. 4 root root 4096 10月 14 22:58 conf
drwxr-xr-x. 2 root root 4096 10月 14 22:58 lib
drwxrwxrwx. 2 root root 6 10月 28 2016 logs
-rwxrwxrwx. 1 root root 217 10月 28 2016 version.txt

# 4.移动到/usr目录
mv mycat/ /usr/
# 5.配置mycat中conf下的配置schema.xml

<!-- 定义MyCat的逻辑库 dataNode代表映射真实数据节点-->
<schema name="test_schema" checkSQLschema="false" sqlMaxLimit="100" dataNode="testNode"></schema>
<!-- 定义MyCat的数据节点 name:名字必须和dataNode值一致 dataHost:映射真实主机 database:映射真实的库-->
<dataNode name="testNode" dataHost="dtHost" database="test" />
<!-- 定义数据主机 name:名字必须和dataHost保持一致  -->
<dataHost name="dtHost" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
    <!-- 心跳检测  -->
    <heartbeat>select user()</heartbeat>
    <!--写节点-->
    <writeHost host="hostM1" url="192.168.28.128:3306" user="root" password="root">
        <!--从节点-->
        <readHost host="hostS1" url="192.168.28.129:3306" user="root" password="root" />
    </writeHost>
</dataHost>
# 6.配置登陆mycat的权限server.xml
<system>
    <!-- 这里配置的都是一些系统属性,可以自己查看mycat文档-->
    <property name="defaultSqlParser">druidparser</property>
    <!-- 编码,mysql版本如果是5.x必须是utf8-->
    <property name="charset">utf8</property>
</system>
<!-- 配置用户信息 name:代表登陆mycat的用户名 password:代表登陆密码-->
<user name="root">
    <property name="password">root</property>
    <!-- 用来指定可以操作的逻辑库-->
    <property name="schemas">aa</property>
</user>
# 7.启动mycat
./mycat console
# 8.查看日志
tail -f ../logs/mycat.log
# 9.数据库连接配置,测试
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/1020686
推荐阅读
相关标签
  

闽ICP备14008679号