关系数据库
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB
非关系数据库
Memcached TCP 11211 redis TCP 6379
三种方式安装Mysql
1.安装docker社区版(docker中安装mysql 5.7)
yum install -y yum-utils
device-mapper-persistent-data
lvm2
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
###显示网络不可达时 wget https://download.docker.com/linux/centos/docker-ce.repo
###然后 yum-config。。。
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“http://z60qk86x.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull mysql/mysql-server:5.7 #为MySQL服务器启动新的Docker容器
docker container run --name mysql1 -d mysql/mysql-server:5.7 #为MySQL Community Server启动新的Docker容器
docker image ls
docker container ls --no-trunc
docker logs mysql1 #监视容器的输出
docker logs mysql1 2>&1 | grep GENERATED #查看密码
docker exec -it mysql1 mysql -uroot -p #登录
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘060703’; 修改密码
停止并删除刚才创建的临时容器
docker stop Mysql
dokcer rm Mysql
docker logs -f mysql1 #docker 日志文件
docker重启后 重启mysql:
sudo systemctl start docker #重启docker
docker ps -a #列出docker中运行的容器
docker restart 020c3a8f01e1 #启动mysql
然后再启动mysql
让宿主机直接登录
yum -y install mariadb
进入mysql
mysql> GRANT ALL ON . TO ‘root’@‘172.17.0.1’ IDENTIFIED BY ‘060703’ WITH GRANT OPTION;
退出mysql 查看容器IP地址
docker container inspect -f {{.NetworkSettings.IPAddress}} mysql1
登录mysql
mysql -uroot -p -h 172.17.0.2
2.Linux通用版安装
yum -y install autoconf
tar xf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
useradd -M -s /sbin/nologin mysql
ln -s /usr/local/mysql-5.6.46-linux-glibc2.12-x86_64/ /usr/local/mysqld
/usr/local/mysqld/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysqld --datadir=/usr/local/mysqld/data
cd /usr/local/mysqld
cp support-files/mysql.server /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
写入
basedir=/usr/local/mysqld
datadir=/usr/local/mysqld/data
echo ‘PATH=$PATH:/usr/local/mysqld/bin’ >> /etc/profile
rpm -q mariadb
rpm -e mariadb
. /etc/profile
/etc/init.d/mysqld start
netstat -anpt | grep mysql
mysql_secure_installation
mysql -u root -p060703
3.Linux源代码编译安装
1、准备工作
卸载rpm方式安装的mysql-server、mysql
[root@localhost ~]# rpm -qa |grep mysql
若存在,用rpm -e mysql-server mysql --nodeps命令卸载
安装依赖包
[root@localhost ~]# yum install -y wget vim cmake bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel autoconf
下载所需源码包
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23.tar.gz
[root@localhost ~]# wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
2、源码编译及安装
增加程序用户mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
[root@localhost ~]# tar xf mysql-5.7.23.tar.gz -C /usr/src/
[root@localhost ~]# mv boost_1_59_0.tar.gz /usr/src/mysql-5.7.23/
[root@localhost ~]# cd /usr/src/mysql-5.7.23/
[root@localhost mysql-5.7.23]# mkdir configure
[root@localhost mysql-5.7.23]# cd configure/
使用cmake进行生成编译环境
[root@localhost configure]# cmake … -DBUILD_CONFIG=mysql_release
-DENABLE_DTRACE=OFF
-DWITH_INNODB_MEMCACHED=ON
-DWITH_ZLIB=system
-DCMAKE_INSTALL_PREFIX=/var/mysql/
-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin"
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DFEATURE_SET=community
-DCOMPILATION_COMMENT=“MySQL Server (GPL)”
-DWITH_DEBUG=OFF
-DWITH_BOOST=…
结尾看到
– Configuring done
– Generating done
证明没毛病
编译并安装:
[root@localhost configure]# make && make install
安装后优化:
创建启停脚本
[root@localhost configure]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost configure]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# vim /etc/init.d/mysqld
46 basedir=/var/mysql
47 datadir=/mysql_data
创建数据目录及日志目录
[root@localhost configure]# mkdir /mysql_data
[root@localhost configure]# mkdir -p /var/mysql/log
[root@localhost configure]# chown -R mysql.mysql /mysql_data/
[root@localhost configure]# chown -R mysql.mysql /var/mysql/
修改主配置文件my.cnf
[root@localhost ~]# cp /etc/my.cnf{,.ori}
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
port=3306
datadir=/mysql_data
log_error=/var/mysql/log/error.log
basedir=/var/mysql/
[mysqld_safe]
log-error=/var/mysql/log/error.log
pid-file=/var/mysql/log/mysql.pid
修改环境变量
[root@localhost ~]# echo “PATH=$PATH:/var/mysql/bin” >> /etc/profile
[root@localhost ~]# . /etc/profile
初始化数据库
[root@localhost ~]# /var/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/mysql --datadir=/mysql_data
启动mysql并测试:
[root@localhost ~]# chkconfig mysqld --add
[root@localhost ~]# /etc/init.d/mysqld start
[root@localhost ~]# netstat -anpt |grep mysqld
tcp6 0 0 :::3306 ::😗 LISTEN 1961/mysqld
[root@localhost ~]# mysql -uroot -p
Enter password: 空
mysql> ALTER USER USER() IDENTIFIED BY ‘123123’;
Query OK, 0 rows affected (0.00 sec)
数字类型
整数:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
浮点数:FLOAT、DOUBLE
浮点数 eg : (5,4)表示 一共五位数,小数点后有4位数
精确值:DECIMAL、NUMERIC
CHAR与VARCHAR的区别
CHAR和VARCHAR类型相似,但它们被存储和检索的方式不同。它们的最大长度和结尾空格是否保留也不同。CHAR的长度值为0-255,VARCHAR为0-65535;CHAR保留空格,VARCHAR不会保留结尾的空白字符;VARCHAR值存储需要添加1字节或2字节长度前缀。长度前缀表示值中的字节数,如果值不超过255个字节,则列使用1个长度字节;如果值可能需要超过255个字节,则列使用2个长度字节;超出列长度的尾随空格在插入之前被截断,并且无论使用哪种SQL模式,都会生成警告。