Our OS has problem, we reinstalled SQL, then drop the distributor database, ... had same problem
error: Invalid object name 'msdb.dbo.MSdistributiondbs'. (Microsoft SQL Server, Error: 208)
here is what I did, worked
1. restore the old 'msdb' to database as old_msdb'
2. script table [dbo].[MSdistributiondbs] from old_msdb' to run under the current msdb:
use msdb
CREATE TABLE [dbo].[MSdistributiondbs](
[name] [sysname] NOT NULL,
[min_distretention] [int] NOT NULL,
[max_distretention] [int] NOT NULL,
[history_retention] [int] NOT NULL
) ON [PRIMARY]
GO
3. when I try to use configure distributor, got other error: Invalid object name 'msdb.dbo.MSdistpublishers', then I did script table MSdistpublishers to current msdb
use msdb
CREATE TABLE [dbo].[MSdistpublishers](
[name] [sysname] NOT NULL,
[distribution_db] [sysname] NOT NULL,
[working_directory] [nvarchar](255) NOT NULL,
[security_mode] [int] NOT NULL,
[login] [sysname] NOT NULL,
[password] [nvarchar](524) NULL,
[active] [bit] NOT NULL,
[trusted] [bit] NOT NULL,
[thirdparty_flag] [bit] NOT NULL,
[publisher_type] [sysname] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MSdistpublishers] ADD DEFAULT (N'MSSQLSERVER') FOR [publisher_type]
GO
Then, everything is fine. check 2 tables
1. MSdistributiondbs
2. MSdistpublishers
are under msdb/table, not under msdb/table/systable. It is fine. Worked!!