mysql数据库的安装总结_MySQL安装再总结

以前总结过一次mysql的安装!好久没有安装,有些生疏,并且这次好好总结一下,安装的步骤和遇到的问题!希望能帮助别人,也自己备份一下!这次安装也尝试了一下使用编译包安装,个人感觉能不用那种方式安装就别用!这次安装也是为了主从复制数据库!所以准备两台服务器!

1.查看MySQL是否安装

rpm -qa|grep mysql

查找mysql残留包,有则删除,没有则忽略

find /-name mysql

2.确保以下所需系统软件包已经被安装  安装相关依赖

gcc gcc-c++ autoconf automake zlib libxml ncurses-devel libgcrypt libtool cmake bison-devel numactl libaio

3.安装前的系统设置

创建用户和用户组

groupadd mysql

useradd -s /sbin/nologin -g mysql -M mysql

更改文件夹所属(mysql为安装解压后的文件)

这里个人用的(mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz)版本的,

还是那句话,能不用 这种mysql-8.0.15.tar.gz非编译后的,就尽量别用!

chown -R mysql.mysql /opt/mysql/

创建mysql相关目录

mkdir -p /opt/mysql/{data,logs,tmp}

赋予目录权限

chown mysql:mysql -R /opt/mysql/data

。。。。。。

4.在/etc下创建文件my.cnf:

[client]

port=3306

socket=/opt/mysql/tmp/mysql.sock

[mysqld]

user=mysql

basedir=/opt/mysql

datadir=/opt/mysql/data

port=3306

socket=/opt/mysql/mysql.sock

pid-file=/opt/mysql/mysqld.pid

tmpdir=/opt/mysql/tmp

skip_name_resolve=1

symbolic-links=0

max_connections=2000

group_concat_max_len=1024000

#sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

lower_case_table_names=1

log_timestamps=SYSTEM

character-set-server=utf8

interactive_timeout=1800

wait_timeout=1800

max_allowed_packet=32M

binlog_cache_size=4M

sort_buffer_size=2M

read_buffer_size=4M

join_buffer_size=4M

tmp_table_size=96M

max_heap_table_size=96M

max_length_for_sort_data=8096

#默认  用  加密

default_authentication_plugin=mysql_native_password

#logs

server-id=1003306

log-error=/opt/mysql/logs/error.log

slow_query_log=1

slow_query_log_file=/opt/mysql/logs/slow.log

long_query_time=3

log-bin=/opt/mysql/logs/binlog

binlog_format=row

expire_logs_days=15

log_bin_trust_function_creators=1

relay-log=/opt/mysql/logs/relay-bin

relay-log-recovery=1

relay_log_purge=1

#innodb

innodb_file_per_table=1

innodb_log_buffer_size=16M

innodb_log_file_size=256M

innodb_log_files_in_group=2

innodb_io_capacity=2000

innodb_io_capacity_max=4000

innodb_flush_neighbors=0

innodb_flush_method=O_DIRECT

innodb_autoinc_lock_mode=2

innodb_read_io_threads=8

innodb_write_io_threads=8

innodb_buffer_pool_size=2G

5.初始化mysql

./mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data

在初始化的过程中一定要结合这error.log日志文件进行处理!

在初始化的过程中遇到的问题总结:

1.初始化这里你可以自己指定 my.cnf配置文件的位置,只是在初始化中增加 --defaults-file=指定的文件位置  即可,但是需要注意:会遇到 unknown variable 'defaults-file=*/my.cnf' 问题

解决方法:只需要调整一下初始化命令的顺序,./mysqld --defaults-file=*/my.cnf --initialize --user=mysql 。。。即可

2.Can't find error-message file '/*/**/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.

解决方法:将源码包里面的/mysql-5.7.22-linux-glibc2.12-x86_64/share/english/errmsg.sys复制到/*/**/share/share下即可

3./bin/mysqld: Error while setting value 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.

解决方法:把配置文件中的  sql_mode 注释掉

4.Could not open file '/**/logs/error.log' for error logging: Permission denied

解决方法:明显是文件权限问题,chmod -R 777 logs/

5.Newly created data directory /opt/mysql/data is unusable. You can safely remove it.

解决方法:将/opt/mysql/data删除,初始化会自动创建

当看到如下内容即:初始化安装完成:

2019-04-17T23:01:36.633013-04:00 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Ew2!OgJu3wXx(MySQL默认生成的一个密码)

2019-04-17T23:01:37.971901-04:00 0 [System] [MY-013170] [Server] /opt/mysql/mysql3306/bin/mysqld (mysqld 8.0.15) initializing of server has completed

6.将安装的mysql设置成开机启动

[root@mysql1 mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld

[root@mysql1 mysql]# chown 777 /etc/my.cnf

[root@mysql1 mysql]# chmod a+x /etc/init.d/mysqld

[root@mysql1 mysql]# chkconfig --level 35 mysqld on

在 profile 中添加如下内容:

export PATH=$PATH:/opt/mysql/bin

7.修改MySQL密码

先通过无密码启动

[root@localhost bin]# ./mysqld_safe --skip-grant-tables &

看看创建了那些数据库

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

使用  mysql  数据库

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

修改密码

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'xcl!0615';

这里要注意一下:mysql8使用的加密方式

可以查看一下user表的信息:select * from user;

修改成远程可以通过root用户连接的话,update一下user表的host值即可:

mysql> update user set Host='%' where User='root';

Query OK, 1 row affected (0.01 sec)

然后即可用navicat测试连接了!

如果在连接过程中,连接不成功,可能是因为服务器防火墙没有打开相应端口:

firewall-cmd --zone=public--add-port=3306/tcp --permanent

到此mysql算安装完成了!

8.主从数据库的设置:

每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予 REPLICATION SLAVE 权限。

MySQL主从复制的操作过程

主服务器:

开启二进制日志

配置唯一的server-id

获得master二进制日志文件名及位置

创建一个用于slave和master通信的用户账号

#创建用户

mysql> CREATE USER 'slave'@'%' IDENTIFIED with mysql_native_password BY 'slavepass';

Query OK, 0 rows affected (0.00 sec)

#分配权限

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';

Query OK, 0 rows affected (0.00 sec)

#刷新权限

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

#查看master状态,记录二进制文件名(binlog.000001)和位置(845):

mysql> SHOW MASTER STATUS;

+---------------+----------+--------------+------------------+-------------------+

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+---------------+----------+--------------+------------------+-------------------+

| binlog.000001 |      845 |              |                  |                   |

+---------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

从服务器:

配置唯一的server-id  my.cnf配置文件添加server-id

使用master分配的用户账号读取master二进制日志

mysql> CHANGE MASTER TO MASTER_HOST='192.168.52.140',

MASTER_USER='slave',

MASTER_PASSWORD='slavepass',

MASTER_LOG_FILE='binlog.000001',

MASTER_LOG_POS=845;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

启用slave服务

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

查看slave状态:

mysql> show slave status\G

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值