Mysql

来自Shiyin's note
Shen讨论 | 贡献2022年2月7日 (一) 06:43的版本 →‎sql语言
跳到导航 跳到搜索
  • 安装和启动mysql服务
yum install mysql
service mysqld start
service enable mysqld (开机启动)
  • 设置mysql的root用户
mysqladmin -uroot -p password 'newpassword'
这种情况有时会报错,网上给出的方法是
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
  • 建立某个数据库db1
mysql -u root -p
password:***
mysql>create database db1;
mysql>grant all on db1.* to dbuser@localhost identified by 'password'; (建立一个dbuser的数据库用户)
mysql>exit
  • 测试dbuser
mysql -u dbuser -p
  • 导入备份数据库
mysql -u root -p db1 < "data base backup file"
  • 备份数据库
mysqldump -u root -p 'pasword' db1 | gzip > /bak/db1.bakup.gz
mysql-server 变为 mariadb-server, mariadb-server 和 mariadb-galera-server有冲突,删除mariadb-galera-server即可.
  • 查看MySQL的默认数据库存储位置:mysql> show variables like '%dir%';

sql语言

  • select [expression] as [colname1],[expression] as [colname2],...;
一个select产生数据库中的 一行,select 的数据并不存储
  • create table [name] as [select statement];
将select的数据存储为table
  • select [columns] from [table] where [condition] order by [order];
  • select [columns] from [table1],[table2]
自动将两个table结合起来,记录数会变为N1*N2,如果两个表有相同的column名字,那么可以用table.column来区分
  • [expression]可以有各种运算符:如+-*/ % and or abs round not < <= > >= != 等
  • "hello,"|| "world" 就是 hello,world