[toc]
MySQL安装
安装方式
版本选择
MySQL官网下载入口链接
MySQL5.6:GA 6-12个月,小版本是偶数版
MySQL5.7:GA 6-12个月,小版本是偶数版,mysql5.7.20以上版本(新增MGR高可用功能)





环境准备
| 主机名 | IP | 安装方式 | 
| db01 | 10.0.0.51 | yum | 
| db02 | 10.0.0.52 5.6 | 源码 | 
| db03 | 10.0.0.53 5.6 | 二进制 | 
| db04 | 10.0.0.54 5.7 | 二进制 | 
三种方式安装MySQL
MySQLyum安装
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 
 | rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-
 7.noarch.rpm
 
 
 yum list|grep mysql
 
 
 vim mysql-community.repo
 [mysql57-community]
 name=MySQL 5.7 Community Server
 baseurl=http://repo.mysql.com/yum/mysql-5.7-
 community/el/7/$basearch
 enabled=1
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 [mysql80-community]
 name=MySQL 8.0 Community Server
 baseurl=http://repo.mysql.com/yum/mysql-8.0-
 community/el/7/$basearch
 enabled=0
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
 
 
 yum install -y mysqlserver
 
 
 systemctl start mysqld
 
 
 cat /var/log/mysqld.log
 grep 'password' /var/log/mysqld.log
 2023-03-28T04:38:20.263481Z 1 [Note] A temporary password is
 generated for root@localhost: aslDSBoyy2
 
 
 mysql -uroot -paslDSBoyy2
 
 | 

MySQL源码安装(mysql-5.6.50)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 
 | yum install -y gcc glibc gcc-c++ cmake openssl-devel ncurses-devel autoconf
 
 
 tar xf mysql-5.6.50.tar.gz
 
 
 cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.50 \
 -DMYSQL_DATADIR=/app/mysql-5.6.50/data \
 -DMYSQL_UNIX_ADDR=/app/mysql-5.6.50/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 -DWITH_ZLIB=bundled \
 -DWITH_SSL=system \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_EMBEDDED_SERVER=1 \
 -DENABLE_DOWNLOADS=1 \
 -DWITH_DEBUG=0
 
 
 
 cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.50 \
 
 -DMYSQL_DATADIR=/app/mysql-5.6.50/data \
 
 -DMYSQL_UNIX_ADDR=/app/mysql-5.6.50/tmp/mysql.sock \
 
 -DDEFAULT_CHARSET=utf8 \
 
 -DDEFAULT_COLLATION=utf8_general_ci \
 
 -DWITH_EXTRA_CHARSETS=all \
 
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 
 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 
 -DWITH_ZLIB=bundled \
 
 -DWITH_SSL=bundled \
 
 -DENABLED_LOCAL_INFILE=1 \
 
 -DWITH_EMBEDDED_SERVER=1 \
 
 -DENABLE_DOWNLOADS=1 \
 
 -DWITH_DEBUG=0
 
 
 make && make install
 
 
 ln -s /app/mysql-5.6.50 /app/mysql
 
 
 cp /app/mysql/support-files/my-default.cnf /etc/my.cnf
 vim /etc/my.cnf
 [mysqld]
 
 
 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
 
 
 mkdir /app/mysql/tmp
 
 
 useradd mysql -s /sbin/nologin -M
 
 
 cd /app/mysql/scripts && ./mysql_install_db --user=mysql --basedir=/app/mysql-5.6.50 --datadir=/app/mysql-5.6.50/data
 
 
 chown -R mysql.mysql /app/mysql*
 
 
 /etc/init.d/mysqld start
 
 
 vim /etc/profile.d/mysql.sh
 export PATH="/app/mysql/bin:$PATH"
 
 
 source /etc/profile.d/mysql.sh
 
 | 

MySQL二进制安装(mysql-5.6.50)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 | yum install -y autoconf libaio-devel
 
 
 tar xf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
 
 
 mkdir /app && mv mysql-5.6.50-linux-glibc2.12-x86_64 /app/mysql-5.6.50
 
 
 ln -s /app/mysql-5.6.50 /app/mysql
 
 
 vim /etc/my.cnf
 [mysqld]
 basedir=/app/mysql				// 指定程序安装的目录
 datadir=/app/mysql/data			// 指定程序的数据存放目录
 
 
 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
 
 
 useradd mysql -s /sbin/nologin -M
 
 
 cd /app/mysql/scripts && ./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data
 
 
 /etc/init.d/mysqld start
 
 
 sed -i 's#/usr/local#/app#g' /etc/init.d/mysqld
 
 
 vim /etc/profile.d/mysql.sh
 export PATH="/app/mysql/bin:$PATH"
 
 
 source /etc/profile.d/mysql.sh
 
 
 mysql
 
 | 
管理mysql
使用systemd管理mysql
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | /app/mysql-5.6.50/bin/mysqld --basedir=/app/mysql-5.6.50 --datadir=/app/mysql-5.6.50/data --plugin-dir=/app/mysql-5.6.50/lib/plugin --user=mysql --log-error=db02.err --pid-file=/app/mysql-5.6.50/data/db02.pid
 
 
 /app/mysql/bin/mysqld  --defaults-file=/etc/my.cnf --user=mysql
 
 
 vim /usr/lib/systemd/system/mysqld.service
 
 [Unit]
 Description=MySQL Server
 
 After=network.target,syslog.target
 
 
 [Service]
 ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
 
 
 [Install]
 WantedBy=multi-user.target
 
 
 systemctl enable mysqld
 
 | 
密码相关操作
| 12
 3
 4
 5
 6
 7
 
 | mysql> alter user root@'localhost' identified by 'xxxxx';
 
 
 mysqladmin -uroot -p password '123'
 mysqladmin -uroot -p password '456'
 mysqladmin -uroot -p456 password '789'
 
 | 
安装示例
MySQL源码安装(mysql-5.7.40)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 
 | yum install -y gcc glibc gcc-c++ cmake openssl-devel ncurses-devel autoconf
 
 
 tar xf mysql-boost-5.7.40.tar.gz
 
 
 cd /root/mysql-5.7.40/ && cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.7.40 \
 -DMYSQL_DATADIR=/app/mysql-5.7.40/data \
 -DMYSQL_UNIX_ADDR=/app/mysql-5.7.40/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 -DWITH_ZLIB=bundled \
 -DWITH_SSL=system \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_EMBEDDED_SERVER=1 \
 -DENABLE_DOWNLOADS=1 \
 -DWITH_DEBUG=0 \
 -DDOWNLOAD_BOOST=1 \
 -DWITH_BOOST=/root/mysql-5.7.40/boost/boost_1_59_0
 
 
 
 cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.50 \
 
 -DMYSQL_DATADIR=/app/mysql-5.6.50/data \
 
 -DMYSQL_UNIX_ADDR=/app/mysql-5.6.50/tmp/mysql.sock \
 
 -DDEFAULT_CHARSET=utf8 \
 
 -DDEFAULT_COLLATION=utf8_general_ci \
 
 -DWITH_EXTRA_CHARSETS=all \
 
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 
 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 
 -DWITH_ZLIB=bundled \
 
 -DWITH_SSL=bundled \
 
 -DENABLED_LOCAL_INFILE=1 \
 
 -DWITH_EMBEDDED_SERVER=1 \
 
 -DENABLE_DOWNLOADS=1 \
 
 -DWITH_DEBUG=0
 
 -DDOWNLOAD_BOOST=1 \
 
 -DWITH_BOOST=/root/mysql-5.7.40/boost/boost_1_59_0
 
 
 make && make install
 
 
 ln -s /app/mysql-5.7.40 /app/mysql
 
 
 cp /app/mysql/support-files/my-default.cnf /etc/my.cnf
 vim /etc/my.cnf
 [mysqld]
 
 
 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
 
 
 mkdir /app/mysql/tmp
 
 
 useradd mysql -s /sbin/nologin -M
 
 
 chown -R mysql.mysql /app/mysql*
 
 
 cd /app/mysql/bin && ./mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data
 
 
 /etc/init.d/mysqld start
 
 
 vim /etc/profile.d/mysql.sh
 export PATH="/app/mysql/bin:$PATH"
 
 
 source /etc/profile.d/mysql.sh
 
 
 mysql -uroot -p'Bcm+FH51Ej3V'
 
 | 

MySQL二进制安装(mysql-5.7.40)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 
 | yum install -y autoconf libaio-devel
 
 
 tar xf mysql-5.7.40-linux-glibc2.12-x86_64.tar
 tar xf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
 
 
 mkdir /app && mv mysql-5.7.40-linux-glibc2.12-x86_64 /app/mysql-5.7.40
 
 
 ln -s /app/mysql-5.7.40 /app/mysql
 
 
 vim /etc/my.cnf
 [mysqld]
 basedir=/app/mysql				// 指定程序安装的目录
 datadir=/app/mysql/data			// 指定程序的数据存放目录
 
 
 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
 
 
 useradd mysql -s /sbin/nologin -M
 
 
 ./mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data
 
 
 /etc/init.d/mysqld start
 
 
 sed -i 's#/usr/local#/app#g' /etc/init.d/mysqld
 
 
 vim /etc/profile.d/mysql.sh
 export PATH="/app/mysql/bin:$PATH"
 
 
 echo $PATH
 
 
 source /etc/profile.d/mysql.sh
 
 
 mysql -uroot -pHelp9090
 
 |