阅读 75

linux下搭建数据库mysql

《二》安装Mysql

创建日志目录

**修改vi /etc/my.cnf ** my.cnf文件配置 查看mysql服务的socket文件位置:find / -name mysql.sock

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

#启用慢查询日志

slow_query_log = 1

#如果查询时间长于“long_query_time”设定的值,那就把此查询查询到“slow_query_log_file”文件中

long_query_time = 1

slow_query_log_file = /home/log/mysqllog/log.log

#定义错误日志文件

log_error = /home/log/mysqllog/log.log

relay_log_recovery=0

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

lower_case_table_names=1

max_allowed_packet=16M

#定义二进制日志文件

log-bin=/home/log/mysqllog/mysql-bin

#每一次事件提交就使日志同步到磁盘,默认“sync_binlog=0”,表示让系统自己来flush使在内存的日志>刷到磁盘,设置为“1”是一种安全的设置,因为当系统crash时你最多丢失一个事件,但相反会增加系统的 IO,即使这样也建议设置成“1”

sync_binlog = 1

#二进制日志的格式修改成“row”

binlog_format=row

#设置服务器ID号

server-id =61

slave-skip-errors=all

#sql_mode config detail:http://tech.it168.com/a2012/0822/1388/000001388401.shtml

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

[client]

default-character-set=utf8

socket=/tmp/mysql.sock

#设置服务器ID(1到232-1),不能重复,用ip最后一段,测试机从200开始,正式机从50,100开始

#重点注意,如果是新数据库需要复制其他数据库的数据,server-id不能再用原来的id

#参考http://www.cnblogs.com/gomysql/p/5852607.html

server-id = 209

#所有日志文件改到日志目录/home/log/mysqllog

mkdir /home/log/mysqllog

mkdir /home/log/mysqllog/mysql-bin

修改mysql日志文件夹权限

cd /home/log/mysqllog

chown -R mysql:mysql ./

创建log.log

vi /home/log/mysqllog/log.log

chown -R mysql:mysql /home/log/mysqllog/log.log

chmod 777 /home

chmod 777 /home/log

chmod 777 /home/log/mysqllog/log.log

chgrp -R mysql /home/log/mysqllog

mysql包导入/usr/local/下 删除/usr/local/mysql/data下的所有东西

chmod -R 777 /usr/local/mysql

会报错确实libaio.so.1包:yum install libaio*

执行:vi /etc/ld.so.conf 添加:/usr/lib

保存后,在命令行终端执行:/sbin/ldconfig -v (其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。)

创建mysql服务(mysql_install_db被弃用了):/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

启动mysql服务:/usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &

出错

[root@localhost bin]# ./mysqladmin -uroot -p password

Enter password: //这里输入上面的v:gNXSw5FTkw

New password: //重新输入新密码

Confirm new password: //重新输入新密码

#############################

mysql -uroot -p

在日志中找到初始密码

/home/log/mysqllog/

/usr/local/mysql/data/

##########################################

(可能出现问题,可用如下设置空白密码的方法重置密码)

2.修改MySQL的登录设置:

vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

**停止mysqld; **

/usr/local/mysql/bin/mysqld_safe stop

(可能有其它的方法,总之停止mysqld的运行就可以了)

查看mysql服务 ps -ef|grep mysql

kill -9 进程(强制关闭)

**用以下命令启动MySQL,以不检查权限的方式启动; **

/usr/local/mysql/bin/mysqld_safe --skip-grant-tables

然后用空密码方式使用root用户登录 MySQL;

mysql -u root

**修改root用户的密码; **

5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

mysql> update mysql.user set authentication_string=PASSWORD('Atnsmi.com') where User='root';

mysql> flush privileges;

mysql> quit

##########################################

SET PASSWORD FOR root@localhost= PASSWORD('testadmin');

给指定ip连接数据库权限:GRANT ALL PRIVILEGES ON . TO 'root'@'172.69.6.163'IDENTIFIED BY 'testadmin' WITH GRANT OPTION;

重新设置一次密码:SET PASSWORD = PASSWORD('testadmin');

配置Mysql开机启动服务star

将服务文件拷贝到init.d下,并重命名为mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

赋予可执行权限:chmod +x /etc/init.d/mysqld

添加服务:chkconfig --add mysqld

显示服务列表:chkconfig --list

如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

chkconfig --level 345 mysql on

重启电脑:reboot

验证:netstat -na | grep 3306

配置Mysql开机启动服务end

收回权限:revoke ALL PRIVILEGES ON . from 'root'@'172.69.6.163';

flush privileges;

在主服务器上创建拥有复制权限的帐户:

mysql –uroot -p

mysql>GRANT replication slave,replication client ON . TO 'repuser'@'172.69.1.244' IDENTIFIED BY 'repadmin';

FLUSH PRIVILEGES;

SHOW MASTER STATUS; #记录下当前主服务器所使用的二进制文件及position

防火墙端口配置: vi /etc/sysconfig/iptables

sudo systemctl start vncserver@:1.service

文章分类
后端