安装MYSQL
看了很多教程都不靠谱。。。还是官方教程最靠谱:
Installing MySQL on Unix/Linux Using Generic Binaries
下载mysql5.6.37-linux-glibc2.12-x86_64,解压到/usr/local/,改名为mysql
新建用户和用户组:mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
(重要!)sudo chown -R mysql .
(重要!)sudo chgrp -R mysql .
sudo scripts/mysql_install_db --user=mysql
执行 scripts/mysql_install_db 时出错。
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要执行sudo apt-get install libaio-dev
,然后再执行安装脚本
修改当前目录拥有者为root用户:执行命令
sudo chown -R root .
修改当前data目录拥有者为mysql用户:执行命令
sudo chown -R mysql data
sudo bin/mysqld_safe --user=mysql &
此时这个窗口会卡住,新建一个terminal,进入/usr/local/mysql中
启动bin/mysql可以进入mysql控制台,输入exit;
退出
执行sudo ./bin/mysql_secure_installation
进行root账户密码的修改等操作。
然后按ctrl+C关掉那个卡住的进程
配置环境变量
sudo nano /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
设置开机自启:
参考:ubuntu linux下mysql开机自启动
sudo cp support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server
sudo cp my.cnf /etc
sudo nano /etc/my.cnf
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
使用/etc/init.d/mysql.server start –user=mysql
启动服务
启动失败的话重启一下,开机后使用mysql –u root –p登陆会出现can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’(2)
的错误,这是因为服务还未启动。
使用/etc/init.d/mysql.server start –user=mysql
启动服务,此时会成功。
设为开机自启sudo update-rc.d -f mysql.server defaults
还需要配置一下访问权限:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop-sna' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
这样就可以使用root用户在任意地点登陆,而不再限于localhost了
关于服务的三个命令。
启动mysql:service mysql.server start
停止mysql:service mysql.server stop
查看mysql运行状态:service mysql.server status
高可用的MySQL双机热备安装教程:
开启二进制日志,设置id
sudo nano /etc/my.cnf
[mysqld]
server-id = 1 #backup这台设置2
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema #忽略写入binlog日志的库
auto-increment-increment = 2 #字段变化增量值
auto-increment-offset = 1 #初始字段ID为1
slave-skip-errors = all #忽略所有复制产生的错误
重启MYSQL服务
service mysqld restart
先查看下log bin日志和pos值位置
里面有个File和Position,分别是log_file和log_pos的值,一会儿要填
mysql> show master status;
master配置如下:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.2.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
-> master_host='10.0.2.7', # 此处输入slave的ip地址
-> master_user='replication',
-> master_password='replication',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=120; #对端状态显示的值
mysql> start slave; #启动同步
backup配置如下:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.2.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
-> master_host='10.0.2.4', # 此处输入master的ip地址
-> master_user='replication',
-> master_password='replication',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=120;
mysql> start slave;
MYSQL双击热备安装完成
测试
在一台机器上建立一个数据库,创建一个表,在另一台机器上查询是有结果的,说明安装成功。