一.搭建数据库

114 阅读2分钟

一、搭建数据库****

1 搭建mysql数据库 centos6下****

1.安装 ncurses-devel和cmake包

yum -y install ncurses-devel

tar xf cmake-2.8.6.tar.gz -C /usr/src

cd /usr/src/cmake-2.8.6/

./configure && gmake && gmake install

2.源码编译及安装

useradd -M -s /sbin/nologin mysql

tar xf mysql-5.5.22.tar.gz -C /usr/src

cd /usr/src/mysql-5.5.22

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

3.优化

修改mysql安装目录的属主属组

chown -R mysql:root /usr/local/mysql

创建修改my.cnf配置文件

cp support-files/my-medium.cnf /etc/my.cnf

添加系统服务

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

chmod +x /etc/init.d/mysqld

[root@mysql mysql-5.5.22]# chkconfig mysqld --add

[root@mysql mysql-5.5.22]# chkconfig mysqld --list

添加 MySQL 命令执行的路径到 PATH 环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile

[root@mysql ~]# source /etc/profile

[root@mysql ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

 

执行 mysql_install_db 脚本初始化数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

2) MySQL 5.7.26 二进制版本安装****

tar xf mysql-5.7.26-el7-x86_64.tar.gz -C /usr/local/

cd /usr/local

ln -s mysql-5.7.26-el7-x86_64/ mysql

useradd -M -s /sbin/nologin mysql

vi /etc/profile

export PATH=/usr/local/mysql/bin:$PATH

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile

source /etc/profile

mysql -V

mkdir /data/   在工作中data目录经常需要单独挂载一块硬盘

mkfs.xfs /dev/sdb  centos6下的文件系统是ext4格式mkfs.ext4,centos7下的文件系统是xfs,格式化用的是mkfs.xfs,查看是否格式化成功用的blkid

mount /dev/sdb /data/

echo "mount /dev/sdb /data/" >> /etc/rc.local

chmod +x /etc/rc.local  centos7下rc.local 默认没有执行权,需要手动增加

3) 数据初始化

mkdir -p /data/mysql/data

chown -R mysql.mysql /data

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

4) 配置文件的准备****

cat >/etc/my.cnf <<EOF

[mysqld]

user=mysql

basedir=/usr/local/mysql

datadir=/data/mysql/data

socket=/tmp/mysql.sock

server_id=2

port=3306

[mysql]

socket=/tmp/mysql.sock

EOF

 

5) 启动MySQL数据库****

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

/etc/init.d/mysqld  start

用systemd   注意: sysv方式启动过的话,需要先提前关闭,才能以下方式登录

cat >/usr/lib/systemd/system/mysql.service<<EOF

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

EOF

如何分析处理MySQL数据库无法启动

 

6) 管理员密码的设定(root@localhost)****

mysqladmin -uroot -p password '123123'

Enter password:

登录    mysql -uroot -p     mysql -uroot -p123123

忘记密码,先关闭数据库

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

修改密码 update mysql.user set password=password('666666') where host='localhost';

update mysql.user set authentication_string=password('666666') where host='localhost';

7) 创建多个数据库****

mkdir -p /data/330{7,8}/data

chown -R mysql.mysql /data/*

cat > /data/3307/my.cnf <<EOF

[mysqld]

basedir=/usr/local/mysql

datadir=/data/3307/data

socket=/data/3307/mysql.sock

log_error=/data/3307/mysql.log

port=3307

server_id=7

log_bin=/data/3307/mysql-bin

EOF

 

cat > /data/3308/my.cnf <<EOF

[mysqld]

basedir=/usr/local/mysql

datadir=/data/3308/data

socket=/data/3308/mysql.sock

log_error=/data/3308/mysql.log

port=3308

server_id=8

log_bin=/data/3308/mysql-bin

EOF

 

mv /etc/my.cnf /etc/my.cnf.bak

mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql

mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/usr/local/mysql

 

cd /usr/lib/systemd/system

cp mysql.service mysql3307.service

cp mysql.service mysql3308.service

vim mysql3308.service

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf

 

systemctl start mysql3307.service

netstat -antup |grep mysql

8)登录MySQL方式****

通过端口 mysql -uroot -p -h ip -P3306

守护进程 mysql -uroot -p -S /tmp/mysql.sock

远程登录 grant all on . to root@’%’ identified by ‘123123’;